用于连接两个文件的 shell 脚本

Nav*_*adi 8 awk text-processing join

我想写一个shell script得到两个文件Aand B,并得到这样的结果:

文件A:

user_a tel_a addr_a
user_b tel_b addr_b
Run Code Online (Sandbox Code Playgroud)

文件B:

process_1 user_a
process_2 user_a
process_3 user_b
Run Code Online (Sandbox Code Playgroud)

结果:

user_a process_1 tel_a addr_a
user_a process_2 tel_a addr_a
user_b process_3 tel_b addr_b
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?awk或者是其他东西?

Pet*_*r.O 15

join ...

join -1 2 -2 1 FileB FileA
Run Code Online (Sandbox Code Playgroud)

输出

user_a process_1 tel_a addr_a
user_a process_2 tel_a addr_a
user_b process_3 tel_b addr_b
Run Code Online (Sandbox Code Playgroud)

输入文件需要按关键字段排序......您的示例文件已经排序,因此没有必要,但否则您可以按如下方式合并排序。

join -1 2 -2 1 <(sort -k2 FileB) <(sort FileA)
Run Code Online (Sandbox Code Playgroud)

  • @Navid:您总是可以通过参考*手册*,通过在终端的命令行中输入`man join`来获得对命令参数的最佳和最准确的描述...... `-1 2 -2 1` 表示:加入 **'1st-file 2nd-field'** 和 **'2nd-file 1st-field'** (5认同)