1. 程式人生 > 其它 >linux 文字處理三劍客

linux 文字處理三劍客

目錄

  • grep
  • sed
  • awk

grep 是文字搜尋工具,能根據正則表示式匹配到文字相應的行

格式:

grep [選項] 表示式 [要匹配的檔案]

常見選項:

-color=auto  對匹配到的文字著色顯示
-m #         匹配#次後停止
-v           顯示不被pattern匹配到的行,即取反
-i           忽略字元大小寫
-n           顯示匹配的行號
-c           統計匹配的行數
-o           僅顯示匹配到的字串
-q           靜默模式,不輸出任何資訊
-A #         after, 後#行
-B # before, 前#行 -C # context, 前後各#行 -e 實現多個選項間的邏輯or關係,如:grep –e ‘cat ' -e ‘dog' file -w 匹配整個單詞 -E 使用ERE,相當於egrep -F 不支援正則表示式,相當於fgrep -f file 根據模式檔案處理 -r 遞迴目錄,但不處理軟連結 -R 遞迴目錄,但處理軟連結

 

 

sed行編輯器,從檔案或管道中讀取一行,處理一行,接著處理下一行。這樣一行一行的處理整個檔案的內容。

格式:

sed [選項] {sed指令碼} [檔案]

 

 sed 常用選項

-n      不輸出模式空間內容到螢幕,即不自動列印
-e      多點編輯
-f FILE 從指定檔案中讀取編輯指令碼
-r, -E  使用擴充套件正則表示式
-i.bak  備份檔案並原處編輯
-s      將多個檔案視為獨立檔案,而不是單個連續的長檔案流

#說明:
-ir 不支援 -i -r 支援 -ri 支援 -ni 會清空檔案

 

 sed指令碼表示地址,指令碼放在單引號

1. 不給地址:對全文進行處理
2. 單地址:
    #:指定的行,$:最後一行
    /pattern/:被此處模式所能夠匹配到的每一行
3. 地址範圍: #,# # 從#行到第#行,36 從第3行到第6行 #,+# # 從#行到+#行,3,+4 表示從3行到第7行 /pat1/,/pat2/ #,/pat/ /pat/,# 4. 步進:~ 1~2 奇數行 2~2 偶數行

 

 sed 指令碼命令

p             列印當前模式空間內容,追加到預設輸出之後
Ip            忽略大小寫輸出
d             刪除模式空間匹配的行,並立即啟用下一輪迴圈
a [\]text     在指定行後面追加文字,支援使用\n實現多行追加
i [\]text     在行前面插入文字
c [\]text     替換行為單行或多行文字
w file        儲存模式匹配的行至指定檔案
r file        讀取指定檔案的文字至模式空間中匹配到的行後
=             為模式空間中的行列印行號
!             模式空間中匹配行取反處理
q             結束或退出sed

 

 sed 查詢和替換

s/pattern/string/修飾符     查詢替換,支援使用其它分隔符,可以是其它形式:s@@@,s###替換修飾符:
g              行內全域性替換
p              顯示替換成功的行
w /PATH/FILE   將替換成功的行儲存至檔案中
I,i            忽略大小寫

 

 sed使用例項