sed提取被其它字元包圍的ip位址

2021-07-06 02:10:12 字數 674 閱讀 3876

檔案的內容如下:

wejrjr 99sf sdjsjdkf ip192.168.12.2iiio kksdf

wejrjr 99sf sdjsjdkf 192.168.12.2 kksdf

wejrjr 99sf sdjsjdkf io192.168.12.2 kksdf

wejrjr 99sf sdjsjdkf 192.168.12.2dddd kksdf

sed語句:

sed -n 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\n\1/;s/^.*\n//p'

第乙個s去掉ip位址後面的字元,並在ip位址前面插入換行符用於第二個s,第二個s把換行符及前面的字元替換成空,留下的就是ip位址了。

sed正則中只有 ^ . * & $  \  這幾個字元字元不加\(反斜槓)就具有特殊含義, 其它要用到其特殊含義都要用\

應用舉例:

掃瞄乙個網段,發現存活主機 然後按ip位址排序,去除位址列表中的第乙個(閘道器)

nmap 192.168.***.0/24 | sed -n 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\n\1/;s/^.*\n//p' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | sed 1d >host.list

等待被提取到變數

大多數程式都有乙個使用者介面的某種需要處理使用者輸入。在專案中,你一直在寫,你一直在使用std cin要求使用者輸入文字輸入。由於文字輸入是如此的自由形式 使用者可以輸入任何東西 所以很容易為使用者輸入不期望的輸入。當你寫程式時,你應該總是考慮使用者如何 無意或其他方式 誤用你的程式。乙個寫得很好的...

在sed中使用其它的分隔符

在sed中使用其它的分隔符 在sed中,可以使用別的字元來作為pattern的分隔符,即不再使用 例如 sed s old new g 可以被替換為 sed s,old,new,g 需要注意的是,在第一種情況下,是分隔符,因此它有特別的含義,因此如果pattern中出現了 需要使用轉移字元 而在第2...

sed 字元替換命令

sed 是一種幾乎包括在所有 unix 平台 包括 linux 的輕量級流編輯器。sed 主要是用來將資料進行選取 替換 刪除 新增的命令。sed 選項 動作 檔名 root localhost sed 2p student.txt 沒有 n 選項輸出所有內容,而且會重複,2p 代表列印第二行 id...