在 shell 脚本中查找

Lookup in shell script

我有两个文件如下:

cat file_1:

12 a

34 b

24 c

18 d

cat file_2:

x a

y c

z d

我想要 shell 脚本中的内容:

x a 12

y c 24

z d 18

文件 1 和文件 2 的行数不同,由于我无法对文件进行排序,因此连接无法正常工作(如果我再次对连接进行排序,文件已经根据要求进行了排序,则不会满足要求)。

@Maulik Patel:也试试。

awk 'FNR==NR{A[]=[=10=];next} ( in A){print A[] FS }'  Input_file2  Input_file1

非常简短的描述: 所以在这里我使用 FNR==NR 条件,当 Input_file 被读取并将 $0(当前行的值)保存到索引为字段 2.

的数组 A 时,该条件将为 TRUE

然后在读取第 2 个 Input_file 时,我正在检查 Input_file2 的第二个字段进入数组 A 并使用 Input_file1 的第一个字段打印它的值。

这是另一种方法

join -1 2 -2 2 file_2 file_1 --nocheck-order -o 1.1,1.2,2.1

x a 12
y c 24
z d 18