linux正規表示式awk講解

2021-07-01 20:53:54 字數 2333 閱讀 9018

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次 匹配前面...