linux - 仅选择文件中具有行名称的行

标签 linux select row

我有一个很大但格式正确的文件“A”。第一列存储每一行​​的名称。我有另一个文件“B”存储我感兴趣的名称。如何选择文件“B”中具有名称的行?这个想法很简单,但是我对LINUX不熟悉。

文件“A”:数据文件。第一列是名称,与第二列用\tab 分隔。其他列以逗号分隔。

col1    0.1111,0.2222,0.33333,0.4444
col2    0.1111,0.2222,0.33333,0.4444
col3    0.1111,0.2222,0.33333,0.4444
col4    0.1111,0.2222,0.33333,0.4444

文件“B”:感兴趣的行,存储在一列中。

col1
col3
col4

最佳答案

在 A 中为 B 中的每一行进行 grep:

for f in `cat B`; do grep -w "^$f" A >> output.txt; done

或更简单

grep -f B A > output.txt

请注意B中的行必须是有效的正则表达式

关于linux - 仅选择文件中具有行名称的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23565601/

相关文章:

linux - 有没有办法在 Linux 中存储查询公式?

SQL根据列值选择

MySQL NATURAL JOIN 3 与父表相关的表,并且对父表有约束

java - 行中的整数用逗号分隔?

python - 使用 iterrows(),从数据帧的单行中插入列的子集作为另一个数据帧中的新行

swift - 第一次加载时 UICollectionView 中的 SelectItem

asp.net - Cloud Optimized ASP.Net vNext 和普通版有什么区别?

非 root 用户无法读取在 linux 上具有文件写入/输出的 JAVA 应用程序

c - 什么是 Windows 等同于 sys/select.h 和 termios.h 中定义的功能

php - 如何在php中进行升序排列