gpt4 book ai didi

linux - 从文件中删除 70 多个字符串的最快方法?

转载 作者:太空狗 更新时间:2023-10-29 11:37:34 25 4
gpt4 key购买 nike

我有 70 多个字符串需要在文件中查找和删除。我需要删除文件中出现该字符串的整行。

我知道我可以使用 sed -i '/string to remove/d' fileA.txt 一次删除一个。但是,考虑到我有70+,这样做需要一些时间。

有没有一种方法可以将这 70 多个字符串放入一个文件中,然后让 sed 一个一个地检查它们?或者,如果我创建一个包含字符串的文件,有没有办法比较这两个文件,以便它从 fileA 中删除包含其中一个字符串的任何行?

最佳答案

你可以使用grep:

grep -vf file_with_words.txt file.txt

其中 file_with_words.txt 是包含单词列表的文件,每个单词在不同的行上,file.txt 是您要删除的文件来自的台词。

如果您的单词列表包含正则表达式元字符,则告诉 grep 将它们视为固定字符串(如果这是您想要的):

grep -F -vf file_with_words.txt file.txt

使用 sed,你需要说:

sed '/word1\|word2\|word3/d' file.txt

sed -E '/word1|word2|word3/d' file.txt

您也可以使用命令替换来构造模式:

sed -E "/$(paste -sd'|' file_with_words.txt)/d" file.txt

但是 grep 显然是在这种情况下使用的工具。

关于linux - 从文件中删除 70 多个字符串的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com