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

来源:互联网 发布:儿童学画画软件 编辑:程序博客网 时间:2024/06/07 19:57

简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:

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 seda/b/Makefile:106: warning:11111line3 a/b/Makefile:106: warning:222222line5end
输入sed命令,进行删除掉含有“a/b/Makefile:106:”字符串的行。
#sed "/a\/b\/Makefile:106: warning:/d" source_file.txt test for sedline3 line5end
如果需要将结果保存到文件,直接加一个重定向即可。
    sed "/a\/b\/Makefile:106: warning:/d" source_file.txt  > output.txt
0 0