合并2个文件的前缀和后缀

时间:2018-11-29 07:00:45

标签: string awk merge

我想合并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(?)来做到这一点? 非常感谢!

2 个答案:

答案 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