我有一个数据文件(seq_array),其中包含如下数字序列:
seq 640094400 60 640180770
我还有另一个文件 (data_file),其中包含需要根据“seq_array”提取的数据。例如;
grep "640094400" data_file > first_grep
grep "640094460" data_file > second_grep
grep "640094520" data_file > third_grep
.
.
grep "640180770" data_file > last_grep
cat "all_greps" > final_grep
如何使用更紧凑的代码执行上述 grep?
答案1
您可以使用
-f file
从文件中读取模式:-f FILE
,--file=FILE
从 FILE 中获取模式,每行一个。如果不需要中间文件进行
seq
输出,请使用流程替代(<(command)
)您还可以添加
-F
搜索grep
固定字符串而不是模式,以加快速度。
最终命令是:
grep -f <(seq 640094400 60 640180770) -F data_file > final_grep