1. 程式人生 > >linux命令之篩選檔案內容

linux命令之篩選檔案內容

linux命令之篩選檔案內容(sed命令)

   在linux系統中,可能有這樣的需求,比如檢視某個檔案中含有某些字元的內容。比如,日誌檔案中,只要含有error 相關的。
可以使用如下命令:

1、根據字串內容篩選
sed -n "/error/p" logs.log

   注意以上/error/p 中的p 必須要帶著,後邊的logs.log 是一個檔案,輸入上邊的命令,則會打印出只含有error 的內容。

下邊用個簡單的例子:

  比如某個檔案中內容如下:

192.168.1.168
xshell
1911919229
Amazing

  通過輸入如下命令:

sed -n "/192.168/p" file5.sh

  最後的結果如下圖所示:

在這裡插入圖片描述
操作起來非常方便。

但是請注意:(2018-11-09補充)

   但是有這種情況,大家需要注意一下,比如下邊的內容:

[[email protected] sed]# cat sed.txt
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
121212221

  現在要以如下的規則篩選文字:

sed -n "/1.2/p" sed.txt

執行完之後,會出來下邊這樣的情況,如下圖:
在這裡插入圖片描述
  第一次這樣用的時候,我懵了半天,後來我才知道,原來這個.

在linux正則裡邊是任意字元,難怪會出來這樣的結果。請大家注意一下,如果你確實想輸出192.168.1.2 ,那就可以這麼寫:

sed -n "/1.2$/p" sed.txt

   即多加一個結束符號$

2、根據行號

  還有根據行號篩選如下:

 sed -n "2,3p" file5.sh

  這樣即是返回第 23 行的資料,如下:

[[email protected] ~]# sed -n "2,3p" file5.sh
xshell
1911919229

其他sed命令用法可以看這個文章

sed命令用法