linux awk命令怎么用? awk:用于一行中分成數(shù)個“欄位”來處理。適合處理 小型資料。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)公司專業(yè)提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!
執(zhí)行模式:awk '條件型別1{動作1} 條件型別2{動作2} ...' filename
# last | awk '{print $1 "\t" $3}' == 檢視登入者的資料,只顯示登入名和ip地址,并以[tab]隔開
awk 的內(nèi)建變數(shù)
變數(shù)名稱 代表的含義
NF 每一行($0)擁有的欄位總數(shù)
NR 當(dāng)前 awk 所處理的是 “第幾行” 資料
FS 當(dāng)前分隔符,預(yù)設(shè)空格鍵
awk 的邏輯運算子
運算單元 代表含義
大于
小于
= 大于或等于
= 小于或等于
== 等于
!= 不等于
范例:
cat /etc/passwd | awk '{FS=":"} $3 10 {print $1 "\t" $3}' == 檔案/etc/passwd是以":"分隔的,檢視第三欄小于10的資料,并且只顯示帳號與第三欄
以上是我對awk的總結(jié),希望對你有幫助,是我寫的哦,不是復(fù)制的。
linux 怎么用awk命令 取出一段文字
awk '/DIMENSION NAME="CCCCCC" SRC_TYPE="INTERNAL"/,/DIMENSIONS/ {print $0}' filename
Linux awk命令問題
head -n 3 /etc/passwd|awk -F ':' '$1="root"' 這里$1="root",表示將第1列的值賦值為root,因此上述命令表示:將/etc/passwd中前3行按照‘:’分隔后第一列以root顯示,并列印其他列。
awk -F ':' '$3=="0"' /etc/passwd
這里$3=="0",表示將第三列與"0”進行匹配,以什么方式匹配呢?以‘:’分隔后的第三列進行匹配并列印。這里是匹配列印,所以列印的是匹配的那一行(被:分隔后),而不是顯示分隔后的列。
所以,區(qū)別在于一個是分隔后賦值列印分隔后列的值,一個是按照指定分隔方式進行匹配找到匹配的行,列印的是匹配的那一行。
linux的awk命令問題
一行里 第一個元素和第三個元素
linux下 awk命令問題
1、其實這樣基本滿足要求。但是確實不夠嚴(yán)謹(jǐn)。試試是否可以。
ps -le | grep sshd | awk '{print $4}'
2、對ps 命令用的最多的是ps -ef 對el 我不是很了解具體輸出什么。當(dāng)然,是不是你壓根就沒有這個sshd服務(wù)啟動。這些都先驗證一下。一步一步的輸出,看看問題出現(xiàn)在管道的哪一個環(huán)節(jié)。
3、或者這個 $14==sshd 欄位你指定錯了。 awk $指定的變數(shù)是從1 開始的。$0是整個行。這個不要忘記了哦。
如果上述1第一種情況可以輸出,第二種2不可以話,可能就驗證了我的假設(shè)。你欄位拆解出現(xiàn)錯誤。把$14 這個欄位好好看看。
linux awk命令基礎(chǔ) 怎么在終端寫
awk一般用于文字處理,通常用作資料提取。終端書寫demo
awk '{print }' info.txt
以上是輸出文字檔案info.txt的所有內(nèi)容,請使用實際檔案進行替換info.txt
ps -ef|grep process_name | awk -F"" '{print $2}'
以上是查詢process_name程序的ID資訊,把查詢資訊作為引數(shù)傳給awk進行過濾,請使用實際程序名替換process_name。
awk命令在 linux和aix下的區(qū)別
三種呼叫awk的命令方式:
1.命令列方式:awk [-F field-separator] 'mands' input-file(s)
-F選項可選:awk -F: 'mands' input-file
2.將所有的awk命令插入一個檔案,并是awk程式可執(zhí)行,然后用awk命令直譯器作為指令碼的首行,
以便通過鍵入指令碼名稱來呼叫它。
3.將所有的awk命令插入一個單獨檔案,然后呼叫:
awk -f awk-script-file input-files(s)
-f:指明在檔案awk-script-file中的awk指令碼
input-file(s):使用awk進行瀏覽的檔名。
awk指令碼
在命令中呼叫awk時,awk指令碼由各種操作和模式組成。
-F,awk每次讀一條記錄或一行,并使用指定的分隔符分分隔指定域;
所沒分隔符,則使用空格。
任何awk語句都由模式和動作組成
模式,決定動作語句何時觸發(fā)及觸發(fā)事件,若忽略模式部分,動作將時刻保持執(zhí)行狀態(tài)。
模式,可是任何條件語句,或符合語句,或正則表示式。
BEGIN:設(shè)定計數(shù),列印頭,在任何文字瀏覽動作之前;
END:用來在awk完成檔案瀏覽動作后列印輸出檔案總數(shù)和結(jié)尾狀態(tài)標(biāo)志。
動作,在{}內(nèi)指定;大多用來列印;里面可包含:if,looping,回圈推出結(jié)構(gòu);
若不指明采取動作,awk將列印所有瀏覽出來的記錄。
如何在Linux中使用awk命令
awk例項
1、cat /etc/passwd|awk -F: '{print $1}'
2、linux的awk一般都是gawk,/bin/awk - gawk
3、awk ‘/abc/’ file.txt 顯示檔案中包含abc行。類似grep abc a.txt
4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,顯示當(dāng)前記錄號、域數(shù)和每一行的第一列和最后一列。
-F引數(shù)可以設(shè)定分割引數(shù),例如按:分割
awk -F: ‘{print $1}’ /etc/passwd
或者cat file|awk -F “|” ‘{print $1}’
5、awk程式語言
cat v.txt|awk ‘{print length($1)}’
6、awk中使用NR和FNR,一般在awk處理多個檔案時,NR==FNR才有意義
NF 當(dāng)前記錄中的欄位數(shù)。
NR 當(dāng)前記錄數(shù)。
FNR同NR,但相對于當(dāng)前檔案。
awk ‘{print NR,FNR}’ test.txt test2.txt
awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt
7、列印奇數(shù)行與偶數(shù)行
awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt
8、殺死tomcat的s.sh指令碼
#!/bin/sh
ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9
9、列印前7列
cat a.txt|awk ‘{NF=7}1’ b.txt
tail -f aess.log|awk ‘NF=7′ OFS=’\t’ b.txt
cut -d”,” -f3-6 urfile
LINUX系統(tǒng)怎么使用awk命令實現(xiàn)下述操作
cat file|awk -F"name=" '{print $2}'|awk -F\" '{print $1}'
試試看,第二個”的轉(zhuǎn)義,我沒測試,可以自己調(diào)下
對于單個命令執(zhí)行大多數(shù)人都是明了的,也就是在一個命令行上執(zhí)行一條命令。那對于在一行上執(zhí)行多個命令怎么辦呢,其實也很簡單,只需在各命令之間加上特殊命令符號,我們常規(guī)使用到的有3個特殊命令符號。
1. [;]
如果被分號(;)所分隔的命令會連續(xù)的執(zhí)行下去,就算是錯誤的命令也會繼續(xù)執(zhí)行后面的命令。
2. []
如果命令被所分隔,那么命令也會一直執(zhí)行下去,但是中間有錯誤的命令存在就不會執(zhí)行后面的命令,沒錯就直行至完為止。
3. [||]
如果每個命令被雙豎線||所分隔,那么一遇到可以執(zhí)行成功的命令就會停止執(zhí)行后面的命令,而不管后面的命令是否正確與否。如果執(zhí)行到錯誤的命令就是繼續(xù)執(zhí)行后一個命令,一直執(zhí)行到遇到正確的命令為止。
所有命令的參數(shù)都是使用空格分隔的,例如 ls -l 。在這里ls即為命令名, -l 為此命令的參數(shù),在 ls 與 -l 之間有一個空格,但是在 -l 內(nèi)部不能有空格。
由于Linux繼承于Unix,而Unix操作系統(tǒng)在當(dāng)初設(shè)計的時候,鍵盤并不可靠,而且敲鍵盤比較費勁(比如容易卡住),因此大部分命令都非常簡短,一般是完整的英文單詞去掉元音字母(aeiou)后的縮寫,這是一個歷史問題。
整個操作系統(tǒng)的磁盤都被劃分為很多個目錄(directory)或稱文件夾(folder),還有文件(file)。每個目錄下還可以有子目錄(sub direcotory)與文件,這樣就形成了一個樹狀結(jié)構(gòu),樹根為 / ,被稱為根目錄(root directory)。
在 任何時候 ,你都有一個 當(dāng)前目錄 (Working Directory),你所有的操作都是相對于當(dāng)前目錄做出的,以當(dāng)前目錄為基準(zhǔn)的目錄名或者文件名叫做相對目錄。例如若你的當(dāng)前目錄是/home/alex,在/home/alex目錄下有一個叫Public的子目錄,還有一個叫l(wèi)og.txt的文件,則Public與log.txt就是相對目錄名與相對文件名。
每個目錄與文件都有一個全路徑(full path)名,這個全路徑以/開頭,遍歷整個目錄,直到最終的目錄名或者文件名為止。例如在Linux中,/下有etc、home、usr、lib等子目錄,而home目錄下有alex目錄,alex目錄下有Public目錄。則在這里Public的全路徑名就是 /home/alex/Public ,注意在這里必須大小寫一致。
當(dāng)然也有可能在其它的名叫Public的目錄或者文件,但是它們的全路徑肯定是不一樣的。就像在中國有一個叫Alex的人,在美國也有一個叫Alex的人,他們可以分別稱為中國的Alex與美國的Alex,這就是他們的全路徑 ;)。全路徑又叫絕對路徑(absolute path)。
在Linux里,每個用戶都有一個家目錄(home directory),一般情況下用戶的家目錄就是/home目錄下相應(yīng)的用戶名,例如alex用戶的家目錄就是/home/alex。
大部分文件都有擴展名(extension name),擴展名即為文件名最后一個點號(.)后面的文字,擴展名一般都表示了文件的類型。例如在log.txt這個文件名中,txt是擴展名,表示這個文件是一個文本文件(TeXT file),而文本文件一般都是可以直接查看內(nèi)容的。而在house.1.jpg這個文件名中,其擴展名為jpg,表示這個文件是一個JPG格式的圖形文件,而圖形文件一般都是需要使用圖形軟件打開才能看到其內(nèi)容的。
pwd 是Pring Working Directory的縮寫,此命令的作用是打印(print)當(dāng)前的(working)目錄(directory)的全路徑名。
當(dāng)你打開終端或者切換目錄之后,你最好運行一下 pwd 命令,確認(rèn)當(dāng)前的目錄是不是你想要切換的目錄。
pwd 命令一般不需要參數(shù)。
ls 是LiSt的縮寫,此命令的作用是列舉目錄下的文件與子目錄。
當(dāng)你不帶參數(shù)運行 ls 命令時,此命令將列舉出當(dāng)前目錄下的文件與子目錄的名稱。
當(dāng)你加上-l參數(shù)運行 ls 命令時,此命令將列舉出當(dāng)前目錄下的文件與子目錄的名稱,以及它們的修改時間、大小等信息。
你也可以使用 ls 命令列舉其它目錄下的文件與子目錄的名稱,例如,運行 ls / 即可列舉出根目錄下的文件與子目錄名,運行 ls -l / 即可列舉出根目錄下的文件與子目錄名,以及它們的修改時間、大小等信息。
cd 是Change Directory的縮寫,此命令的作用是切換當(dāng)前的工作目錄。
例如,運行 cd /home/alex 將把當(dāng)前目錄切換為 /home/alex 。當(dāng)然,cd后面的參數(shù)也可以是相對目錄。例如若當(dāng)前目錄為 /home/alex ,而 /home/alex 目錄下有一個目錄叫Public,則運行 cd Public 則會將當(dāng)前目錄變?yōu)?/home/alex/Public 。
如果cd命令后面不接任何參數(shù),則將把當(dāng)前目錄設(shè)置為用戶的家目錄。
cp 是CoPy的縮寫,此命令的作用是復(fù)制文件或者文件夾。
例如,運行 cp 1.txt 2.txt 將把當(dāng)前目錄下的 1.txt 文件復(fù)制成 2.txt 文件。運行 cp 1.txt /tmp/2.txt 將把當(dāng)前目錄下的 1.txt 復(fù)制成 /tmp/2.txt 文件,運行 cp 1.txt /home/alex/ 將把 1.txt 文件復(fù)制到 /home/alex/ 目錄下。
rm 是ReMove的縮寫,此命令的作用是刪除文件或者文件夾。
例如,運行 rm 2.txt 將刪除當(dāng)前目錄下的 2.txt 文件,運行 rm /tmp/2.txt 將刪除 /tmp/2.txt 文件。
你也可以使用 rm 來刪除目錄,此時需要帶上-R參數(shù)(recursive,即遞歸的意思),例如 rm -R /tmp/abc 將刪除整個 /tmp/abc 目錄。
刪除時一般都會詢問你讓你確認(rèn)是否要刪除,如果你不需要被提問確認(rèn),可以加上-f參數(shù),例如 rm -f /tmp/1.txt 。
mv 是MoVe的縮寫,此命令的作用是移動文件或者文件夾,或說是為文件或者文件夾改名。注意,一旦移動成功,則原來的文件或者文件夾就不存在了。
例如,運行 mv 1.txt 2.txt 將把當(dāng)前目錄下的 1.txt 改名為 2.txt ,運行 mv 1.txt /tmp/2.txt 將把當(dāng)前目錄下的 1.txt 移動成為 /tmp/2.txt 文件。
mkdir 是MaKe DIRectory的縮寫,此命令的作用是創(chuàng)建目錄。
例如 mkdir abc 將在當(dāng)前目錄下創(chuàng)建一個名為 abc 的目錄, mkdir /tmp/xyz123 將在 /tmp 目錄下創(chuàng)建一個名為 xyz123 的目錄。
mkdir 可以帶-p參數(shù),這樣即可同時創(chuàng)建多層目錄,例如 mkdir -p a/b/c/123 將在當(dāng)前目錄下創(chuàng)建a目錄,在a目錄下創(chuàng)建b目錄,在b目錄下創(chuàng)建c目錄,在c目錄下創(chuàng)建123目錄。
在Linux下還有幾個特殊的目錄,它們分別是:
有一個特殊的符號表示文件名匹配,即 * 。例如 cp *.txt /tmp/ 將把當(dāng)前目錄下的以 .txt 結(jié)尾的文件名都復(fù)制到 /tmp/ 目錄下, ls a*.txt 將列舉出當(dāng)前目錄下所有以 a 開頭,以 .txt 結(jié)尾的文件名與目錄, rm /tmp/1*log 將刪除 /tmp 目錄下所有文件名以 1 開頭,以 log 結(jié)尾的文件。
所有以 . 開頭的文件與目錄都表示是隱藏文件 / 目錄,例如 .vimrc ,例如 .. ,在 ls 時一般是看不到這些文件與目錄的,如果想要看到,需要使用 ls 的 -a 參數(shù),例如 ls -al 。
Linux下有大量命令/軟件,在此我們僅列舉幾個可能會用到的,可以在使用過程中慢慢熟悉。
可以。linux哪個組合可以斷開長命令,中斷l(xiāng)inux命令快捷鍵:
1、Tab這是不能沒有的Linux快捷方式。將節(jié)省Linux命令行中的大量時間。
2、Ctrl+C這個組合能在終端上中斷命令或進程。按下它將立即停止正在運行的程序。如果要停止使用在前臺運行的程序,只需按此組合鍵即可。
3、Ctrl+Z此快捷方式將在后臺發(fā)送正在運行的程序。
本文名稱:linux命令分隔 linux命令分隔符有哪些
URL地址:http://chinadenli.net/article14/dojocde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計、面包屑導(dǎo)航、企業(yè)建站、商城網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)