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

Delete a line starting with particular String in all 3000 files

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

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

示例文件内容:

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

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

您没有谈论识别要处理的文件,但假设您要从当前目录

中的所有 *.txt 个文件中删除所有 IAM A DEFAULT

这条 Perl 单行命令将为您完成这项工作。它还会将每个原始文件如 abc.txt 保存为 abc.txt.bak

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

希望对你有所帮助

使用 GNU sed 和 GNU bash 4:

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