使用文件包含数字序列的 grep 命令的用法

使用文件包含数字序列的 grep 命令的用法

我有一个数据文件(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

相关内容