https://blog.csdn.net/xhoufei2010/article/details/53521625?t=1482769628409
簡介
sed 是一種在線編輯器,它一次處理一行內容。
處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space)。
接着用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。
Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
sed 用法
利用sed命令,刪除一個文件中,含有特定字符的文件。
1、刪除file文件中含有abc字符串的行:
sed '/abc/d' file
如果需要將刪除的結果輸出到指定文件,直接重定向到文件就可以了
sed '/abc/d' file > output_file
2、刪除file文件中,含有特殊字符的行,如左斜線“/”
這個時候,需要用雙引號作為sed的操作指令。
如刪除file文件中,含有“a/b/Makefile:106:”字符串的行。
sed "/a\/b\/Makefile:106: warning:/d" file
對於a\/b中,右划線“\"為轉義字符,"\/"代表轉義之后,為一個“/”字符。
所以,“/a\/b\/Makefile:106:”,經過轉義之后,實為“a/b/Makefile:106:”
僅刪除行末的/時,需要額外處理,添加行結束符 \r 做約束:
sed -i "s/.html\/\r/.html/g" filename # 去掉 .html 類型url末尾誤添加的斜桿 /
sed -i "s/.txt\/\r/.txt/g" filename # 去掉 .txt 類型url末尾誤添加的斜桿 /
3、實例
#cat source_file.txt
test for sed
a/b/Makefile:106: warning:11111
line3
a/b/Makefile:106: warning:222222
line5
輸入sed命令,進行刪除掉含有“a/b/Makefile:106:”字符串的行。
#sed "/a\/b\/Makefile:106: warning:/d" source_file.txt
test for sed
line3
line5
如果需要將結果保存到文件,直接加一個重定向即可。
sed "/a\/b\/Makefile:106: warning:/d" source_file.txt > output.txt
