我对 bash 脚本很陌生,因此我们将不胜感激。以下是我想要实现的目标。
我有两个文本文件。我想删除第一个文件中与第二个文件中逗号之前的任何字符串相匹配的所有行。
例如
文件一:
this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442
文件2:
this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22
所需输出:空白
答案1
您可以使用:
grep -vFf file2 file1
请注意,尽管它在逗号后面匹配,但它仍然会删除行。
答案2
一个简单的sed
技巧就可以做到这一点。
IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
sed -i '/^'"$i"',/d' file1.txt
done