Linux 正規表示式結合三劍客取系統IP位址

2021-08-14 03:13:09 字數 2233 閱讀 4180

1、首先要把網絡卡資訊給輸出到螢幕上,可用ifconfig命令指定網絡卡號(如ifconfig eth0)

2、然後單獨把ip位址所在行給取出來(一般在第二行)

3、然後對這一行進行一系列處理最後把ip位址處理

[root@oldboy ~]# hostname -i

192.168.93.134

awk使用多個分隔符取ip位址

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

192.168.93.134

[root@oldboy ~]# ifconfig eth0 | sed -n "2p" 

inet addr:192.168.93.134 bcast:192.168.93.255 mask:255.255.255.0

[root@oldboy ~]# ifconfig eth0 | sed -n "2p" | sed 's#^.*dr:##g' | sed 's# b.*$##g'

192.168.93.134

[root@oldboy ~]# ifconfig eth0 | sed -n '2s#^.*dr:##gp' | sed 's#  b.*$##g'

192.168.93.134

後向引用格式:

sed -n 's#()()#\1\2#gp' filename
當在前面匹配部分用小括號的時候

第乙個括號內容,可以在後面部分用\1輸出;

第二個括號內容,可以在後面部分用\2輸出

[root@oldboy ~]# echo i am oldboy hahha. > a.txt

[root@oldboy ~]# cat a.txt

i am oldboy hahha.

[root@oldboy ~]# sed -nr 's#^.*m (.*) h.*$#\1#gp' a.txt

oldboy

sed後向引用取ip

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

192.168.93.134

[root@oldboy ~]# ifconfig eth0 | sed -nr 's#[^1]+(.*) b.*$#\1#gp'

192.168.93.134

若sed不加 -r 引數,則後邊的 () 要加反斜線來轉義,即\(\)

基於用perl風格的正則匹配模式,非貪婪匹配,了解即可,會用更好

# centos6

[root@oldboy ~]# ifconfig eth0 | grep -po '(?<=addr:)\s+'

192.168.93.134

# centos7

[root@oldboy ~]# ifconfig eth0 | grep -po '(?<=inet )\s+'

192.168.93.134

基於grep的-o引數,只列印匹配文字段,不列印整行

[root@oldboy ~]# ifconfig eth0 | grep -o "inet addr:[0-9.]*" | grep -o "[0-9.]*"

192.168.93.134

這種方法需要除nat模式外的模式才適合,因為是直接讀取配置檔案ip位址,若是nat模式,配置檔案不會顯示ip位址,nat是dhcp動態獲取的。

[root@oldboy ~]# grep "ipaddr" /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d= -f2

10.141.87.61

正規表示式 三劍客簡單應用

1 正規表示式 簡單的說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。正規表示式可以快速的過濾出我們需要的內容。配合三劍客使用。2 正規表示式實際就是一些特殊字元,賦予了他特定的含義。1 word 搜尋以word開頭...

Linux系統運維之初識「三劍客」正規表示式

三劍客 正規表示式是為了護理大量的字串及文字而定義的一套規則和方法 應用正規表示式的命令就是 grep egrep sed awk,俗稱linux三劍客 字元作用 用法 any 表示匹配以any開頭的所有行 用法 any 表示匹配以any結尾的所有行 組合符,表示空行,解釋就是以 結尾的行或者以 開...

linux正則和三劍客

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