我有两个文本文件,其格式如下:
Value - Value - Number
我需要将这些文件合并为一个新文件,其中只包含具有公共值的行 - 值对后跟两个数字值。
例如,如果我有这些文件:
FILE1.TXT
Jack - Mark - 12
Alex - Ryan - 15
Jack - Ryan - 22
FILE2.TXT
Paul - Bill - 11
Jack - Mark - 18
Jack - Ryan - 20
合并后的文件将包含:
Jack - Mark - 12 - 18
Jack - Ryan - 22 - 20
我该怎么做?
答案 0 :(得分:2)
awk
救援!
awk -F' - ' 'BEGIN{OFS=FS}
NR==FNR{a[$1,$2]=$3;next}
($1,$2) in a{print $1,$2,a[$1,$2],$3}' file1 file2
Jack - Mark - 12 - 18
Jack - Ryan - 22 - 20
或者,使用decorate / join / undecorate
$ join <(sort file1 | sed 's/ - /-/') <(sort file2 | sed 's/ - /-/') |
sed 's/-/ - /'
Jack - Mark - 12 - 18
Jack - Ryan - 22 - 20