1

我有 2 个文件:

  1. 文件 1

字符串列表:

ben
john
eric
  1. 文件2

几行:

 ben when to school
 my mother went out
 the dog is big
 john has FB
 eric is nice guy

导出文件:

my mother went out
the dog is big

我想使用grep -v和删除列表中包含字符串的行。

这是想法,但命令错误:

grep -v `cat file2` file1 > out

谢谢

阿萨夫

4

2 回答 2

7

将文件用于模式:

grep -v -f "file2" file1 > out

否则你可以这样做:

grep -v -e "string1" -e "string2" file1
于 2013-08-06T15:34:24.743 回答
1

如果我正确理解了这个问题,则应逐一删除 4 条匹配的行,除非您定义包含这 4 行的 REGEXP,否则单个 grep 无法做到这一点,这很棘手

但是这个脚本应该这样做

cp file2 out
cat file1 | while read STR ; do
    LINE="`grep \"$STR\" file2`"
    sed -i "/^$LINE\$/d" out
done

cat out
于 2013-08-06T18:45:49.143 回答