文本處理工具sed awk

sed 非交互式流編輯器

1.默認情況sed不會改變原文件,處理文本時以行爲單位,每處理一行就打印出來,然後再處理下一行,直到文件結束
2.編輯動作:刪除、查找替換、添加、插入、從其他文件讀入數據
3.要保存修改後的文件,使用重定向
4.直接修改源文件本身,使用-i參數
5.使用場景:常規編輯器編輯困難的文件、過於龐大的文件、有規律的文本修改(幾百兆的文件),加快處理速度(全文替換)
6.sed [options] 'commands' 文件
options 可接受的參數
commands sed命令集(25個)

commands

1.-e 和分號連接多編輯命令(一般情況可忽略)

sed -e 's/this/That/g' -e 's/line/LINE/g' sed.txt
sed 's/this/That/g ; s/line/LINE/g' sed.txt
文本處理工具sed awk

2.d刪除指定的行

文本處理工具sed awk

補充:如果希望保存修改後的文件 使用重定向 sed -i '1d' sed.txt > sed1.txt

3.查找替換

s命令可將查找到的匹配文本替換爲新的文本,默認情況只替換第一次匹配到的內容,命令g完成所有匹配值的替換
sed 's/line/LINE/'
sed 's/line/LINE/g'

字符轉換y

將一系列字符逐個變換爲另外一系列字符
文本處理工具sed awk

插入文本a/i

使用i在第二行之前插入insert
sed '2 i insert' sed.txt
使用i在第二行之後插入insert
sed '2 a insert' sed.txt

讀入文本r

從其他文本讀入文本 並插入匹配行之後

sed '/^$/r /etc/passwd' sed.txt (插入到空白行之後)

打印p

文本處理工具sed awk

寫文件

默認不改寫源文件,只對緩衝區文件做修改並修改到屏幕,如果要保存文件,(除重定向或-i參數)。使用w命令保存到外部文件

sed -n '1,2 w output' sed.txt (output文件前兩行是sed前兩行的內容)

sed腳本

1.替換this爲THAT,並刪除空白行
sed.rules
s/this/THAT/g
/^$/d
2.-f參數指定改腳本應用於sed.txt
3.sed -f sed.rules sed.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章