我有多个扩展名为.txt的文件,在所有文件中有些行有“?”符号,所以如何使用单个AWK / perl命令删除所有文件中的整行
我使用了以下命令:
perl -pi -e“s / \?// g”* .txt
但它只删除?符号不是整行,所以请帮我删除整行包含“?”符号
答案 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()
的行,然后打印所有其他行。