shell腳本學習(3)sed替換


1 sed 替換  

1格式:

  's/原字符串/新字符串/'   輸入源    

2正確參考:

sed ’s/as/AS/' do.txt 

  改變字符串as為AS,不會改輸入源的文件。

  匹配每行第一次匹配的位置。

 sed ’s/as/AS/' do.txt

 

 

         指定匹配每行第二個被匹配的數據, 用/n來指定匹配第幾個

 sed ’s/as/AS/2' do.txt

 每行的第二個as變成了AS

 

         配合g命令,全部匹配, 設置文件中所有匹配的位置,修改完全部的as都被替換成AS了

 

 

3 錯誤參考:

注意尾部有/  , 試了一個上午一直沒成功, 原來是少了/

yuyuyu@ubuntu:~$sed ’s/as/AS' do.txt
sed: -e expression #1, char 10: unterminated `s' command

5 界定符, 一般是用/  ,但也可以用 ; : , 分號,冒號, 逗號等

比如像把留着當目錄, 符號用, 可以在‘s;;;’   s/改成s;

sed 's;0x50;0x60;' do.txt

 

6 配合區域保存, \(\)

輸入一個目錄, 然后用區域存儲,以及引用 \1 修改這個目錄的子目錄

yuyuyu@ubuntu:~$ 

echo /home/yuyuyu/ | sed 's;\(/home\)/yuyuyu/;\1/zhangzhang/;'

 

7 sed -e命令, 執行多次匹配。

yuyuyu@ubuntu:~$ sed 's/as/AS/2' do.txt

 

8 sed -f命令, 把編輯命令放到文本里讀出來執行,批量處理sed的編輯命令

創建一個test_sed文本

yuyuyu@ubuntu:~$ cat test_sed s/as/AS/2 s/df/DF/

 使用讀取sed腳本命令:

yuyuyu@ubuntu:~$ sed -f test_sed do.txt 

腳本想要替換as  和df , 結果顯示都替換成功了。

 

9 sed -n命令,關閉修改結果, 只打印 帶p的行

測試了下, -n命令, 結果什么都沒輸出到result.txt

 sed -n 's/as/AS/2' <do.txt > result.txt

 

如果在 尾部加入p就能夠打印被修改的行了

yuyuyu@ubuntu:~$ sed -n 's/as/AS/2p' <do.txt > result.txt

 

 10 sed 的指定行的用法

sed 只對含有特定行的位置操作

sed '/fd/ s/as/AS/' <do.txt

 

 

 

 

sed 只對不含有特定行的位置操作

sed '/fd/ !s/as/AS/' <do.txt

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM