bash-替换第一个文件中的值,查看其他文件,将其称为行号

时间:2018-10-04 13:55:41

标签: bash unix

我需要将file1.txt中的第一个值替换为第二个文件file2.txt中的值,并将它们视为行号

例如:

file1.txt

3|1|D|A  
3|2|2018-09-11 11:25:13.000000857|2018-09-11 11:26:03.000000459  

file2.txt

12~299673112~S  
12~299673232~S  
13~299673233~W  
13~299673222~W  

输出

13~299673233~W|1|D|A  
13~299673233~W|2|2018-09-11 11:25:13.000000857|2018-09-11 11:26:03.000000459

预先感谢

1 个答案:

答案 0 :(得分:0)

您可以使用此awk

awk 'BEGIN{FS=OFS="|"} NR==FNR{a[FNR]=$0; next} $1 in a{$1=a[$1]; print}' file2 file1

13~299673233~W|1|D|A
13~299673233~W|2|2018-09-11 11:25:13.000000857|2018-09-11 11:26:03.000000459