我想合并2个文件:
> cat file1.txt
string1:suffix1
string2:suffix2
> cat file2.txt
prefix1:string1
prefix2:string2
在:
> cat result.txt
prefix1:string1:suffix1
prefix2:string2:suffix2
如何使用awk(?)来做到这一点? 非常感谢!
答案 0 :(得分:1)
awk'BEGIN {OFS =“:”} {getline line <“ file1.txt”; split(line,a,“:”); print $ 1,a [2];}'file2.txt
在哪里, 此[{OFS =“:”}]设置要用于从2个文件追加2行的字符,如果使用空格,您将获得如下输出: prefix1:string1后缀1 prefix2:string2后缀2
此[getline行<“ file1.txt”]是要从第一个文件获取行。 这个[split(line,a,“:”)]是基于冒号分割线并创建数组a。 [print $ 1]是打印file2.txt文件的整行 [[a [2]]是从第一个文件打印数组a的第二个元素
答案 1 :(得分:1)
$ awk -F: 'NR==FNR {a[$1]=$2; next}
{print $0 FS a[$2]}' file1 file2
prefix1:string1:suffix1
prefix2:string2:suffix2
或者如果文件已经对齐
$ paste -d: file2 <(cut -d: -f2 file1)
prefix1:string1:suffix1
prefix2:string2:suffix2