linux - 记录过滤

标签 linux shell sed awk

我有这样的文件file-1:

1       1       1.1552422143268792
1       2       1.1552422143268792
1       3       1.1552422143268792
1       4       1.1552422143268792
2       1       2.1906014042706916
2       2       2.1906014042706916
2       3       2.1906014042706916
2       4       2.1906014042706916
2       1       4.1906014042706916
2       2       4.1906014042706916
2       3       4.1906014042706916
2       4       4.1906014042706916
3       1       3.1876823799523781
3       2       3.1876823799523781
3       3       3.1876823799523781
3       4       3.1876823799523781
4       1       0.6213184222668061
4       2       0.6213184222668061
4       3       0.6213184222668061
4       4       0.6213184222668061

我还有一个文件 file-2

1
2
4

我想从 file-1 中过滤那些记录,其中第一列的值与 file-2 中的值相同,所以我想得到这个输出

1       1       1.1552422143268792
1       2       1.1552422143268792
1       3       1.1552422143268792
1       4       1.1552422143268792
2       1       2.1906014042706916
2       2       2.1906014042706916
2       3       2.1906014042706916
2       4       2.1906014042706916
2       1       4.1906014042706916
2       2       4.1906014042706916
2       3       4.1906014042706916
2       4       4.1906014042706916
4       1       0.6213184222668061
4       2       0.6213184222668061
4       3       0.6213184222668061
4       4       0.6213184222668061

有人可以帮忙吗?

最佳答案

awk 'NR==FNR{f2[$1];next}$1 in f2' file-2 file-1

关于linux - 记录过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787416/

相关文章:

python - 有什么方法可以在 Linux 上读取 Access 数据库吗? Python

regex - Sed 不使用正则表达式

awk - 提取紧接在星号前面的每个单词

regex - sed 中的正则表达式不起作用

bash - 为什么 "var=value somecommand"不保留 var 的新值?

php - 分发一个 php 命令行工具

linux - `gcloud compute copy-files` : permission denied when copying files

c - 打印出堆栈指针的值

linux - 如何获取 csv 文件的标题并使用 linux 将其打印为一列?

shell - "&!"(与号和感叹号)在linux shell中是什么意思