有没有更快的方法来在Linux中获取此输出文件

987王子
cat file_1

my colour is red
my rose is red
my colour is blue
my rose id blue

cat file_2 
red
blue

cat output_file should be
my colour is red
my colour is blue

在这里我正在使用

cat file_2 | while read line;do cat file_1 | grep "$line" | head -1;done

在这里我试图得到包含pattern "red" and "blue"其中存在的最上面的行file_2

还有其他方法可以做as fast as possible,,而循环又要花时间

血红素

您可以使用一种while构造来遍历的模式file2,然后使用-m 1withgrep来在第一次匹配后停止file1

while IFS= read -r i; do grep -Fm1 "$i" file1; done <file2
  • -F 从字面上看待模式
  • -m 1使得grep退出第一场比赛后,

Shell循环通常效率不高,但由于模式列表较小,因此在这种情况下可以使用。

更快的替代方案xargs

xargs -a file2 -n1 -P2 -I'{}' grep -Fm1 {} file1

使用更多并行进程(-P)获得更多模式。

例子:

% while IFS= read -r i; do grep -Fm1 "$i" file1; done <file2
my colour is red
my colour is blue

% xargs -a file2 -n1 -P2 -I'{}' grep -Fm1 {} file1
my colour is blue
my colour is red

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有更快的方法来获取和输出目录树中的所有文件名?

有没有更快的方法来从字典中获取多个键?

cython中的嵌套循环优化:有没有更快的方法来设置此代码示例?

有没有更快的方法来执行此MongoDB查询?

有没有更快的方法来实现此循环功能?

有没有一种更快的方法来清除文件中的控制字符?

有没有更快的方法来在特定文件夹中创建Google电子表格?

有没有更快的方法来合并两个文件而不是逐页合并?

有没有一种更快的方法来检查文件是否正在使用?

有没有更快的方法来解析此文本文件?

有没有比 for 循环更快的方法来对 javascript 中的图像进行阈值处理?

有没有一种更快的方法来搜索表中的值?

有没有更快的方法来检查列表中的列表是否等效?

有没有更快的方法来检查列表/集合中的一堆东西?

有没有一种更快的方法来在atom中执行拼写检查?

有没有更快的方法来遍历Sqlite查询中的行?

有没有更快的方法来在python中创建配对元素列表?

有没有更快的方法来在python中创建(0,1)组合列表?

有没有更快/更短的方法来在Rust结构中初始化变量?

有没有更快的方法来删除Excel中的形状

有没有更快的方法来小写 C 中的字符串?

有没有更快的方法来查找列表中的重复模式?

有没有一种更快的方法来为多个文件夹分配图标?如何改进此代码?

有没有比列出目录中所有文件更快的方法来查找文件?

有没有更有效的方法来在servlet中输出html?

在Blazor中,有没有更短的方法来完成此任务?

有没有一种更快/更紧凑的方法来从正方形获取索引?(Matlab)

有没有更快的方法来获取MNIST数据集的本地二进制模式?

有没有更快的方法来读取,诉诸和转换二进制文件?