sed命令刪除特殊字符(含斜線、冒號等轉義字符)


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

 


免責聲明!

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



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