linux 文字處理三劍客
阿新 • • 發佈:2022-03-22
目錄
- 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. 地址範圍: #,# # 從#行到第#行,3,6 從第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使用例項