淺談Linux三劍客中的sed命令之篇二
相關理論概述請參考如下篇一:
淺談Linux三劍客中的sed命令之篇一
補充一下格式及常用參數:
1、
語法格式:
(1) 、
Sed [選項] 編輯命令 文件
(2) 、
Shell 命令 | sed [選項] 編輯命令
2、
常用選項:
-n:隻顯示匹配處理的行
-e:執行多個編輯命令(一般使用;代替)
-i:直接在文件中進行修改,不輸出到屏幕
-r:支持擴展正則表達式
-f:從腳本文件中讀取内容并執行文件中的編輯命令。
補充:這裡比較常用的-n -r -e(用;代替)
3、
常用編輯命令:
p:打印匹配行
d:删除匹配行
案例2:
r:從另一個文件中讀文本,類似輸入重定向(<)
//創建一個test.txt文件
echo "hello read" > test.txt
//将test.txt文件内容追加到demo.txt的第三行,使用行号
sed '3r test.txt' demo.txt
使用正則表達式
//匹配到good行後追加
sed '/good/r test.txt' demo.txt
案例3:
w:寫文本到一個文件,類似輸出重定向(>)
//将腳本demo_1.sh中非#開頭的行寫入write.txt文件
//注意:如無wirte.txt文件會自動創建,如有會覆蓋原有内容
sed -n '/^#/!w write.txt' demo_1.sh
案例4:
s:使用替換模式替換相應模式
使用頻率還是比較高的
格式:
sed -n [行号or模式 ]s /匹配的字符/替換字符/[替換标記]
注意:這裡的匹配的字符可以用正則表達式
常用替換标記:
數字:表示替換每行的第幾個
g:全局替換,ng表示第n個開始
p:顯示被執行替換操作的行,和-n配合使用
w:将執行替換操作的行輸出到指定文件
測試1:
//将每行中的bash替換成nologin
sed -n 's/bash/nologin/p' /etc/passwd
//将以odysee開頭(正則)的行中的bash替換為nologin,增加過濾條件
sed -n '/^odysee/s/bash/nologin/p' /etc/passwd
連同篇一都是一些Sed的基本用法,下篇會整理一些sed的特殊用法
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!