我使用以下代码从input_file中提取第一列中具有特定值的行。行提取所依据的值在“one_column.txt”中:
while read file
do
awk -v col="$file" '$1==col {print $0}' input_file >> output_file
done < one_column.txt
我的问题是,如何提取第一列不与one_column.txt中的任何值匹配的行?换句话说,如何从input_file中提取仅剩余的行,这些行不会在output_file中结束?
答案 0 :(得分:1)
grep -vf
可以成功:
grep -vf output_file input_file
grep -f
将一个文件与另一个文件进行比较。 grep -v
匹配相反的情况。
$ cat a
hello
good
bye
$ cat b
hello
good
bye
you
all
$ grep -f a b
hello
good
bye
$ grep -vf a b ## opposite
you
all