嗨我有一个简单的AWK用于组合两个文件。
awk -v OFS='\t' '
FNR == NR { a[$1] = $2 OFS $10 OFS $11 OFS $13; next }
{ $1 = $1 }
FNR != 1 { print $0, a[$1] }
' $2 $1 > $3
$ 1文件中的一列包含字符'不完美'
合并两个文件后,此字符将变为制表符分隔符。 比如'Not \ tPerfect'
任何人都清楚为什么会这样?
答案 0 :(得分:2)
您已将输出分隔符OFS
设置为'\t'
,因此您可以使用逗号分隔两个以逗号分隔的内容,例如:
print $0, a[$1]
你会得到:
<contents of $0 i.e. the whole input line>\t<the '$1'th value of 'a'>
因此要么将OFS
设置为空格,要么将其设置为:
OFS=' '
或仅使用printf
来避免隐式使用OFS
,如:
printf("%s %s\n", $0, a[$1])