我在文件A中有两个文件,另一个文件B中有sequence_numbers,有很多列,第一列是序列号,我想获取一个文件,其中包含B中的所有行以及序列号A我怎样才能实现这个目标?谢谢
就像文件A一样
1
3
8
9
20
文件B
1 kfjk 3243424
2 fkdkf 23543592
3 iefjk 21493402
7 dlafdl 23435231
8 kfkdlkf 309834
答案1
我猜你想要join (1)
:
对于具有相同连接字段的每对输入行,将一行写入标准输出。默认连接字段是第一个,由空格分隔。当 FILE1 或 FILE2(不是两者)为 - 时,读取标准输入。
[0 1075 12:50:10] ~/temp/sx % join A B
1 kfjk 3243424
3 iefjk 21493402
8 kfkdlkf 309834
join: file 1 is not in sorted order
好的,显然你需要将其与sort (1)
按 alpha 值排序(不是数值,所以 20 < 3)
join <(sort A) <(sort B)
对我有用,但这看起来很奇怪,可能是 zsh 扩展。这样做没有坏处
sort A > A.tmp; sort B > B.tmp; join A.tmp B.tmp
(像往常一样,检查手册页是否存在陷阱。)