gpt4 book ai didi

linux - Bash - 从一个文件中删除行,同时遍历另一个文件中的行

转载 作者:IT王子 更新时间:2023-10-29 00:51:42 25 4
gpt4 key购买 nike

我有两个文件。

file.txtdelete.txt

file.txt 包含以下内容,例如:

/somedirectory/
/somedirectory2/somefile.txt
/anotherfile.txt

delete.txt 包含:

/somedirectory/
/somedirectory2/somefile.txt

我需要从 file.txt 中删除包含在 delete.txt 中的行

cat file.txt 的结果应该是:

/anotherfile.txt

到目前为止,我已经试过了,但没有成功:

while read p; do
line=$p;
sed -i '/${line}/d' file.txt;
done < delete.txt

我没有收到任何错误,它只是没有编辑我的 file.txt 文件。我用 echo ${line} 测试了 while 循环,它在那种情况下按预期工作。

有什么建议吗?

注意:即使我去掉了文件中的正斜杠,上面的 while 循环也没有按预期工作。

最佳答案

用一个简单的grep:

grep -vFxf  delete.txt file.txt > temp.txt && mv temp.txt file.txt 

关于linux - Bash - 从一个文件中删除行,同时遍历另一个文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41853667/

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