删除所有3000个文件中以特定字符串开头的行

时间:2016-05-01 18:42:49

标签: perl awk sed grep notepad

我想删除每个3000文本文件中的特定行。

我尝试过使用Notepad Plus,但会为每个匹配行创建一个空白行。

示例文件内容:

SAMPLE TXT FILE
---------------------
phone number
address
IAM A DEFAULT
city
state
pincode
----------------

此处IAM A DEFAULT出现在所有3000个文件中,并且只出现一次

2 个答案:

答案 0 :(得分:3)

您没有谈到识别要处理的文件,但我们假设您要从当前目录中的所有IAM A DEFAULT文件中删除所有*.txt

这个Perl单行命令会为你做这个。它还会将abc.txt等每个原始文件保存为abc.txt.bak

perl -i.bak -lne 'print unless $_ eq "IAM A DEFAULT"' *.txt

我希望有帮助

答案 1 :(得分:2)

使用GNU sed和GNU bash 4:

shopt -s globstar nullglob
sed -i '/^IAM A DEFAULT/d' **/*.txt