文件1包含许多数字,如下所示:
345656565465
783329439432
345656565465
783329439432
.......
文件2:
345656565465;ram;dfdfdf54532fdf;...............................
783329439432;sam;dfsdgg543546fg;...............................
768737228732;bheem;dfsdg5465464767g;...........................
34565656546575;hema;jsdsds45345455h;..........................
期望的输出:文件1应该搜索地图文件2并放入文件3(输出)像这样:
345656565465;ram;dfdfdf54532fdf;...............................
783329439432;sam;dfsdgg543546fg;...............................
到目前为止,我已经尝试过:
$ awk -F'|' 'NR==FNR{c[$1$2]++;next};c[$1$2] > 0' file2 file1
还尝试使用 perl 但我不确定这是否正确,因为它没有给我想要的输出:
perl -e 'open(A, "file2"); while(<A>){/.+?\|[^|]+/ && $k{$&}++};
while(<>){/.+?\|[^|]+/ && do{print if defined($k{$&})}}' file1
我面临的问题是它应该只 grep 该数字,但在我的代码中它采用包含相同模式的大数字,并且应该粘贴到第三个文件中。请帮助我实现这一目标:)
答案1
你快成功了
awk -F';' 'NR==FNR{c[$1]++;next ;} c[$1] > 0' file1 file2
在哪里
-F';'
使用分号作为分隔符(而不是管道)- 使用
file1
第一个来捕获数字 - 我想您想选择第一列。