如何使用AWK / perl删除包含特定符号的特定行

时间:2016-05-25 14:29:33

标签: perl awk

我有多个扩展名为.txt的文件,在所有文件中有些行有“?”符号,所以如何使用单个AWK / perl命令删除所有文件中的整行

我使用了以下命令:

perl -pi -e“s / \?// g”* .txt

但它只删除?符号不是整行,所以请帮我删除整行包含“?”符号

2 个答案:

答案 0 :(得分:2)

单个文件的最简单解决方案是grep -Fv \? old_file > new_file。您也可以使用sed -i '/\?/d' old_file。如果你想一次处理所有文件而不编写循环,第二个选项更方便,因为sed可以同时处理多个文件。

答案 1 :(得分:0)

一种方式:

perl -ni -e 'next if /\?/; print' *.txt

-n标记以与-p相同的方式循环遍历文件,但它不会自动打印该行;它把责任留给你。因此,我们所做的就是遍历所有行,跳过带有? next()的行,然后打印所有其他行。