linux三劍客與正則案例

2022-08-12 09:36:11 字數 3736 閱讀 9188

awk:三劍客之老大,擅長取列,取行,計算

引數:

!:表示取反,排除

nr:顯示行號

$0:表示顯示一整行內容

-f:指定分隔符或者多個分隔符

例子:使用awk取出網絡卡中的ip

[root@web02 oldboy]# ifconfig eth0

eth0 link encap:ethernet hwaddr 00:0c:29:1f:6d:b7

inet addr:10.0.0.3 bcast:10.0.0.255 mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe1f:6db7/64 scope:link

up broadcast running multicast mtu:1500 metric:1

rx packets:109302 errors:0 dropped:0 overruns:0 frame:0

tx packets:90828 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

rx bytes:75289221 (71.8 mib) tx bytes:36886895 (35.1 mib)

[root@web02 oldboy]# ifconfig eth0 |awk -f '[: ]+' 'nr==2 '

10.0.0.3

[root@web02 oldboy]#

例子2:取出檔案中的檔案許可權數字
[root@web02 oldboy]# stat oldboy.txt 

file: `oldboy.txt'

size: 246 blocks: 8 io block: 4096 regular file

device: 802h/2050d inode: 396746 links: 3

access: (0644/-rw-r--r--) uid: ( 0/ root) gid: ( 0/ root)

access: 2019-01-09 19:04:35.117568571 +0800

modify: 2019-01-09 19:04:29.682566423 +0800

change: 2019-01-09 19:04:29.685566229 +0800

[root@web02 oldboy]# stat oldboy.txt |awk -f '[(/]' 'nr==4'

0644

grep:過濾

引數:

-v:排除

-a數字:顯示過濾的內容及接下來的幾行

-n:顯示行號

egerp:支援高階的正則相當於gerp -e

--color=auto:給過濾出來的內容加上顏色

-o:表示grep正則的執行過程

例子:使用egrep過濾出ip地焉

sed:替換與修改檔案內容

引數:

/需要刪除的內容/d:表示刪除

-n:取消預設輸出,一般與p配合使用

-i:修改檔案內容

[root@web02 oldboy]# ifconfig eth0

eth0 link encap:ethernet hwaddr 00:0c:29:1f:6d:b7

inet addr:10.0.0.3 bcast:10.0.0.255 mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe1f:6db7/64 scope:link

up broadcast running multicast mtu:1500 metric:1

rx packets:110510 errors:0 dropped:0 overruns:0 frame:0

tx packets:91567 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

rx bytes:75392237 (71.8 mib) tx bytes:36965141 (35.2 mib)

[root@web02 oldboy]# ifconfig eth0|sed -nr '2s#.*dr:(.*) bc.*$#\1#gp'

10.0.0.3

##將inet替換成oldboy

[root@web02 oldboy]# ifconfig eth0|sed -nr '2s#inet#oldboy#gp'

oldboy addr:10.0.0.3 bcast:10.0.0.255 mask:255.255.255.0

例子2:使用sed取出檔案許可權數字
[root@web02 oldboy]# stat oldboy.txt 

file: `oldboy.txt'

size: 246 blocks: 8 io block: 4096 regular file

device: 802h/2050d inode: 396746 links: 3

access: (0644/-rw-r--r--) uid: ( 0/ root) gid: ( 0/ root)

access: 2019-01-09 19:04:35.117568571 +0800

modify: 2019-01-09 19:04:29.682566423 +0800

change: 2019-01-09 19:04:29.685566229 +0800

[root@web02 oldboy]# stat oldboy.txt |sed -nr '4p'

access: (0644/-rw-r--r--) uid: ( 0/ root) gid: ( 0/ root)

[root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*\(([0-9]+)##gp'

/-rw-r--r--) uid: ( 0/ root) gid: ( 0/ root)

[root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*\(([0-9]+).*$#\1#gp'

0644

linux正則和三劍客

linux初學總結 三個重要工具 grep awk sed awk 可以定位到資料的所在行數,並處理其中的分段 sed 可以對定位到的資料行進行增刪改查操作。管道 命令常和上面三個命令一起使用 命令1 命令2 命令3 命令1的輸出作為命令2的輸入經過命令2處理輸出的結果作為命令3的輸入 b 匹配單詞...

正則三劍客 grep

正則是一竄有規則的字元,掌握好正則對編寫shell指令碼有很大幫助 grep cinvabc word filename c 行數 i 不區分大小寫 n 顯示行號 v 取反 r 遍歷所有子目錄 a 後面跟數字,過濾出符合要求的行以及下面n行 b 同上,過濾出復合要求的行以及上面的n行 c 同上,同時...

Linux三劍客與管道

管道 正則 三劍客grep sed awk之間的關係 管道 左邊命令的輸出是右邊命令的輸入 比如 echo hello1234 grep hello 正則匹配字串的工具 正規表示式就是記錄文字規則的 小測試工具推薦 b 單詞 b 漢堡包 夾住只能匹配裡面的單詞 注意是右斜槓 ba w b b w b...