awk和sed一樣是流式編輯器,它也是針對文件中的行來操作的,一行一行的去執行。awk比sed更加強大,它能做到sed能做到的,同樣也能做到sed不能做到的。awk常用來分段;
awk不用加任何引數就可以實現 + ? * . | 這些特殊符號;
1、擷取文件中的某個段 1
2
3
4
5
6
7
8
9
[root@yonglinux ~]
# head -n2 passwd |awk -f: ''
root
bin
[root@yonglinux ~]
# head -n2 passwd |awk -f: ''
root:x:0:0:root:
/root
:
/bin/bash
bin:x:1:1:bin:
/bin
:
/sbin/nologin
[root@yonglinux ~]
# head -n2 passwd |awk -f: ''
root 0
/bin/bash
bin 1
/sbin/nologin
-f 選項的作用是指定分隔符,如果不加-f指定,則以空格或者tab為分隔符。 print為列印的動作,用來列印出某個字段。$1為第乙個字段,$2為第二個字段,依次類推,有乙個特殊的那就是
$0,它表示整行
。內可以列印多個字段$1,$3,$7 列印第1、3、7段,中間用逗號隔開;
列印分段預設分隔符為空格,可以自定義分隔符,分隔符需要用冒號括起來;也可以ofs定義輸出分隔符; 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~]
# awk -f: '' 1.txt |head -5
0 0
1 1
2 2
3 4
4 7
[root@localhost ~]
# awk -f: '' 1.txt |head -5
0:0
1:1
2:2
3:4
4:7
[root@localhost ~]
# awk -f: 'ofs="#"' 1.txt |head -5
0
#0
1
#1
2
#2
3
#4
4
#7
1
2
3
[root@yonglinux ~]
# head -n2 passwd |awk -f: ''
root
#@0#/bin/bash
bin
#@1#/sbin/nologin
注意awk的格式,-f後緊跟單引號,然後裡面為分隔符,print的動作要用 括起來,否則會報錯。print還可以列印自定義的內容,但是自定義的內容要用「」雙引號括起來。
awk及正規表示式
9.6 9.7 awk awk是一種很棒的語言,它適合文字處理和報表生成,其語法較為常見,借鑑了某些語言的一些精華,如c語言等。awk在linux系統日常處理工作中,發揮很重要的作用,掌握了awk將會使你的工作變的高大上。awk語法比sed多,有變數 陣列和語句控制,所以功能更加強大。不過初學awk...
Linux shell正規表示式 awk
在 linux unix 系統中,awk 是乙個功能強大的編輯工具,逐行讀取輸入文字,並根據指定的匹配模式進行查詢,對符合條件的內容進行格式化輸出或者過濾處理,可以在無互動的情況下實現相當複雜的文字操作,被廣泛應用於 shell 指令碼,完成各種自動化配置任務。1.awk的命令格式如下 1 awk ...
正規表示式詳細講解
什麼是正規表示式?正規表示式通常被用來檢索 替換那些符合某個規則的文字,使用一系列特殊字元模式,來表示某一類字串。元字元 元字元含義 將下乙個字元標記符 或乙個向後引用 或乙個八進位制轉義符 匹配輸入字行首 匹配輸入行尾 匹配前面的子表示式任意次 匹配前面的子表示式一次或多次 大於等於1次 匹配前面...