1. 程式人生 > >Linux中使用sed命令替換字串

Linux中使用sed命令替換字串

文字替換:sed 's#原字串#新字串#g'  file

                    s     單獨使用→將每一行中第一處匹配的字串進行替換
                    g     每一行進行全部替換→sed指令s的替換標誌之一(全域性替換)

sed -i 's/原字串/替換字串/g' filename              ####替換檔案中的所有匹配項
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    '/^{/,/}$/s#AAA#BBB#g'    liangjc.txt

取區間sed -n '/^device/,/\}$/p'  liangjc.txt     ####取以device開頭並以}結尾的行

刪除操作

               刪除檔案的第2行:sed '2d' file

               刪除檔案的第2行到末尾所有行:sed '/^$/d' file               刪除空白行:                          sed '/^$/d' file

sed 查詢單行文字:

       查詢多行文字  使用數字地址範圍         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