如何使用命令行删除具有某些特殊字符的行?

时间:2016-04-28 13:46:14

标签: bash shell unix command-line command

嗨,我有一个像这样的长文件:

information_1 this is my file....@s...asdadada 
information_2 this is my file....s...asdadada sdsfsd
information_3 this is my file@sasdadada 
information_4 this is my filesasdadada 
information_5 this is my filesasdadada@

我想要一个这样的文件,清除包含“@”charachter的行:

information_2 this is my file....s...asdadada sdsfsd
information_4 this is my filesasdadada 

如何使用sed,awk等命令执行此操作??

3 个答案:

答案 0 :(得分:3)

使用sed:

 sed '/@/d' file

删除包含@的所有行。

使用grep:

grep -v @ file

不包含@的输出行。

答案 1 :(得分:0)

使用awk:

$ awk '!/@/' file
information_2 this is my file....s...asdadada sdsfsd
information_4 this is my filesasdadada

答案 2 :(得分:0)

使用perl:

$ perl -ne 'print unless /@/' file

要替换文件(例如,还要创建备份.BAK,更准确地说,将文件重命名为file.BAK并创建具有相同名称的新文件)

$ perl -i.BAK -ne 'print unless /@/' file