linux sed命令删除特殊字符(含斜线、冒号等转义字符)

简介

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:”

3、实例
#cat source_file.txt 
test for sed
a/b/Makefile:106: warning:11111
line3 
a/b/Makefile:106: warning:222222
line5
end
输入sed命令,进行删除掉含有“a/b/Makefile:106:”字符串的行。
#sed "/a\/b\/Makefile:106: warning:/d" source_file.txt 
test for sed
line3 
line5
end
如果需要将结果保存到文件,直接加一个重定向即可。
    sed "/a\/b\/Makefile:106: warning:/d" source_file.txt  > output.txt

你可能感兴趣的:(Linux,shell)