Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 基于从文件中读取的列值删除行_Bash_Unix_Awk - Fatal编程技术网

Bash 基于从文件中读取的列值删除行

Bash 基于从文件中读取的列值删除行,bash,unix,awk,Bash,Unix,Awk,我使用下面的代码从输入文件中提取第一列中具有特定值的行。行提取所基于的值位于“one_column.txt”中: 读取文件时 做 awk-v col=“$file”'$1==col{print$0}”输入文件>>输出文件 完成

我使用下面的代码从输入文件中提取第一列中具有特定值的行。行提取所基于的值位于“one_column.txt”中:

读取文件时
做
awk-v col=“$file”'$1==col{print$0}”输入文件>>输出文件
完成

我的问题是,如何提取第一列与one_column.txt中的任何值都不匹配的行?换句话说,如何仅从输入文件中提取不在输出文件中的剩余行?

grep-vf
可以:

 grep -vf output_file input_file
grep-f
将一个文件与另一个文件进行比较<代码>grep-v
与相反的匹配

试验
谢谢是我,还是在输入文件有12000行,输出文件有4000行的情况下,这需要相当长的时间才能运行?不客气@Abdel,可能有点慢,是的。总之,它通过缓冲第一个文件并比较每一行来比较两个大文件。
 grep -vf output_file input_file
$ 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