shell腳本基礎——常用的sed命令舉例


一般在實際使用編輯器的過程中 , 常需要執行替換文件中的字符串、移動、刪除、與搜尋數據行等等動作。當然 , 一般交互式編輯器(如 vi、emacs)都能做得到上述功能 , 但文件一旦有大量上述編輯需求時 , 則用它們編輯十分沒有效率。本文列舉一些常用的sed的使用范例,以備不時之需。


替換數據

1.把開頭/結尾為str1的行替換為str2:

sed -i 's/^str1.*/str2/'  filename  ###以str1開頭
sed -i 's/.*str1$/str2/'  filename  ###以str1結尾
sed -i 's/.*str1.*/str2/'  filename  ###含有str1

2.將文件中含 "arr" 字符串的數據行中的 "str1" 字符串 , 替換成為 "str2" 字符串:

sed -e '/arr/s/str1/str2/g' filename  ##含有g說明是全局替換

3.將文件中第 5 行數據 , 替換成句子"hello world!!!"

sed -e '5c\hello world!!!' filename

4.將文件中 1 至 100 行 , 替換成如下兩行:

how are you?
my name is feige.

命令如下:

sed -e '1,100c\
How are you?\
my name is feige.
' filename

刪除數據

1.刪除空行:

sed -e '/^ *$/d' filename   ### *號前面有一個空格符哦~

2.刪除含有指定字符串str的行:

sed -f '/str/d' filename

移動數據

1.將文件中的前 100 數據 , 搬到文件中第 300 后輸出。其命令如下:

sed -f mov.txt  targetfile  ## targetfile是要操作的文件,mov.txt里面放的是操作指令

其中mov.txt文檔的內容為:

1,100{
H
d
}
300G

2.將from.txt文件中含 "phi" 字符串的數據行 , 移動到to.txt文件中儲存。其命令如下:

sed -e '/phi/w to.txt'  from.txt

3.將 from.txt文件內容 , 移動至to.txt文件中含 "beta" 字符串的數據行。其命令如下:

sed -e '/beta/r  from.txt' to.txt

搜索數據

1.將文件中含 "omega" 字符串的數據輸出:

sed -f grep.txt  targetfile

其中grep.txt的內容如下:

/omega/b
N
h
s/.*\n//
/omega/b
g
D

今天就更新這么多,以后會在本文中不定期更新有用的sed相關命令。


免責聲明!

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



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