剛學(xué)習(xí)了一段時(shí)間sed的視頻教程∫吒澹現(xiàn)在想通過 獲取ip地址 的練習(xí)來鞏固一下知識(shí)點(diǎn)培他。
在Linux世界里,查看網(wǎng)卡的信息的命令遗座,大家知道吧舀凛。
ifconfig # 取得所有網(wǎng)卡的信息
ifconfig wlo1 # 取得某個(gè)網(wǎng)卡的信息
好的,現(xiàn)在邀請(qǐng)我們的主角登場(chǎng)吧员萍。sed
sed 的簡介
這是省略10000個(gè)字的簡介腾降。(其實(shí)簡介沒啥必要,關(guān)鍵在于要怎么用碎绎。)
sed 的使用
這里就直接寫命令了螃壤,通過各種方式,來獲取IP地址筋帖。命令下面我會(huì)簡略的說明一下奸晴。
-
獲取IP所在的行
說明:
使用-n 跟 p 來顯示所匹配的行。 通過 '2s/./&/' 來定位所在的行日麸。
-
取出所有的IP寄啼,包括IP地址,網(wǎng)段IP代箭,掩碼IP
說明:
1墩划、這條命令中,使用了-n -r 參數(shù) 嗡综,-n 參數(shù) 是顯示匹配的所有行乙帮,-r 是來說明search_url里面是正則格式的。
2极景、 參數(shù)后面 '2s/[^0-9.]+/\n/gp' 這個(gè)命令是 把除了[0-9.]+ 的信息都替換成換行符\n. g 是匹配所有的察净。 p是顯示所匹配的信息。
3盼樟、 sed '1d' 刪除無效的行氢卡。
-
取出IP 或 網(wǎng)段IP 或掩碼IP
說明 :
1、第一條是取出IP
2晨缴、第二條是取出網(wǎng)段IP
3译秦、第三條是掩碼IP
-
另外一種方式取出IP
說明
用參數(shù) -nr 來顯示匹配行和使用的是正則方式。
這個(gè)命令里面使用了后向引用方式\1
'2s/.地址:(.) 廣./\1/gp'
.地址:(.) 廣. # 這個(gè)是正則 我們要取的是括號(hào)里面的內(nèi)容
replace_str 地方用提 \1 取正則中括號(hào)中匹配的內(nèi)容。直接把括號(hào)中匹配的內(nèi)容替換掉所匹配行的內(nèi)容诀浪。
如果其他網(wǎng)段IP 或者掩碼IP都是類式的棋返。
- 還有一種辦法 ,我們觀察一下ifconfig wlo1 發(fā)現(xiàn)我們所有的IP地址是在: 和空格中間雷猪,我們可以這么想睛竣,我們把:和空格替換掉\n 然后 再sed -n '3p' 取出所在行就可以了。試看看哦求摇。命令行如下:
可以看出射沟,我們想的IP是在第4行。然后 我們?cè)儆?sed -n '4p' 就可以取出ip地址了与境。
-
另外一種辦法
總結(jié)
上面的辦法验夯,我們用到sed的很多參數(shù)跟說明,我們總結(jié)一下吧摔刁。
- -n 這個(gè)參數(shù) 我們總是以 p 聯(lián)系在一起挥转,用來顯示所匹配的行。 如果p前面顯示數(shù)字共屈,所直接顯示匹配行中的第幾行绑谣。很繞吧
- -r 這個(gè)參數(shù)告訴我們sed 開始用正則了。
- s 這個(gè)模式拗引,是sed經(jīng)常用的模式借宵,用來查找替換用的。 這里用的很
-
替換字符里面的& 所有存放的是匹配出來的字符矾削,我們可以在匹配出來的信息中壤玫,添加我們的想要的內(nèi)容。比如:我們想在把所有IP用括號(hào)括起來哼凯。
- 替換字符里的\1 是后向引用的方式欲间。存放的是正則里面的第一個(gè)括號(hào)。也有\(zhòng)2 \3 如果前面正則里面有3個(gè)括號(hào)的話断部。
-
d 這個(gè)模式括改,是sed的刪除模式。所要指定某行刪除的家坎。如果前面添加行數(shù),或者行區(qū)間吝梅。如:
-
模式里面可以用;來進(jìn)行多次查找替換等虱疏。比如:
嗯。非常好苏携。 然后 是不是感覺上面的命令行的字符敲打得太多了做瞪。那我們?cè)傧胂胗袥]有其他辦法吧。 如果有更好的辦法,請(qǐng)直接在下面回復(fù)一下吧装蓬。
以上只是做為復(fù)習(xí)著拭,回顧。有不足之外牍帚,可以下方的評(píng)論給我指出儡遮。我再進(jìn)行改進(jìn)。多謝謝大家的查閱暗赶。