linux - 在一个文件中搜索包含第二个文件的 de 行的行

标签 linux bash

所以我有第一个文件,每行都有一个 ID,例如:

458-12-345
466-44-3-223
578-4-58-1
599-478
854-52658
955-12-32

然后我有第二个文件。它在每个文件中都有一个 ID,后跟信息,例如:

111-2457-1 0.2545 0.5484 0.6914 0.4222
112-4844-487 0.7475 0.4749 0.1114 0.8413
115-44-48-5 0.4464 0.8894 0.1140 0.1044

....

第一个文件只有1000行,是我需要的信息ID,而第二个文件有20万多行。

我在 fedora 中使用了以下 bash 命令并取得了不错的效果:

cat file1.txt | while read line; do cat file2.txt | egrep "^$line\ "; done > file3.txt

但是我现在正尝试在 Ubuntu 中复制结果,但输出是一个空白文件。这在 Ubuntu 中不起作用有什么原因吗?

谢谢!

最佳答案

您可以一次 grep 多个字符串:

grep -f id_file data_file

假设id_file包含所有ID,data_file包含ID和数据。

关于linux - 在一个文件中搜索包含第二个文件的 de 行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6280362/

相关文章:

c - 如何用XCB绘制标题栏

linux - 在 Bash 脚本中设置 -e : discovering failure location?

linux - Lighttpd认证

linux - 完成一组特定的进程后关闭计算机

mysql - 从单个文件恢复所有 MySQL 数据库

bash - 在 bash 中解析 .ini 文件

bash - Shell脚本使用grep清理指定的Docker容器

php - 在框架上跟踪 php 进程

linux - 如何使用 wget 和 ftp 从我的列表中下载文件

bash - 替换找到的第一个文件中的字符串