Linux中使用sed命令替換字串
阿新 • • 發佈:2019-02-19
文字替換:sed 's#原字串#新字串#g' file
s 單獨使用→將每一行中第一處匹配的字串進行替換
sed -i 's/原字串/替換字串/g' filename ####替換檔案中的所有匹配項
g 每一行進行全部替換→sed指令s的替換標誌之一(全域性替換)
sed 's/^/新增的頭部&/g' ####在所有行首新增
sed 's/$/&新增的尾部/g' ####在所有行末新增
sed '2s/原字串/替換字串/g' ####替換第2行
sed '$s/原字串/替換字串/g' ####替換最後一行
sed '2,5s/原字串/替換字串/g' ####替換2到5行
sed '2,$s/原字串/替換字串/g' ####替換2到最後一行sed 's/^/新增的頭部&/g;
s/$/&新增的尾部/g' ####同時執行兩個替換規則,中間加分號sed取區間範圍並替換:
例:取 {} 範圍(以{開頭,以}結尾的行),並將其中的AAA替換為BBB
取區間:sed -n '/^device/,/\}$/p' liangjc.txt ####取以device開頭並以}結尾的行sed '/^{/,/}$/s#AAA#BBB#g' liangjc.txt
刪除操作
刪除檔案的第2行:sed '2d' file
刪除檔案的第2行到末尾所有行:sed '/^$/d' file 刪除空白行: sed '/^$/d' filesed 查詢單行文字:
查詢多行文字 使用數字地址範圍 sed -n '2,4p' hi.txt
查詢指定多行 sed -n '2p;4p;10p;30p' hi.txt
增加單行文字
a 追加append,在指定行後新增一行或多行文字
將 this is a test line 追加到 以test 開頭的行後面: sed '/^test/i\this is a test line' file
在test.conf檔案第5行之前插入this is a test line: sed -i '5i\
this is a test line' test.conf
i 插入insert,在指定行前新增一行或多行文字
########將 this is a test line 追加到以test開頭的行前面: sed '/^test/i\this is a test line' file
########在test.conf檔案第5行之前插入this is a test line: sed -i '5i\this is a test line' test.conf