当前位置:  开发笔记 > 编程语言 > 正文

Bash - 从一个文件中删除行,同时迭代另一个文件中的行

如何解决《Bash-从一个文件中删除行,同时迭代另一个文件中的行》经验,为你挑选了1个好方法。

我有两个文件.

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文件.我用a测试了while循环,echo ${line}它在该场景中按预期工作.

有什么建议?

注意:即使我从文件中取出正斜杠,上面的while循环也无法按预期工作.



1> Zumo de Vidr..:

用一个简单的grep:

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

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有