通过awk space合并两个文件后成为标签

时间:2015-04-30 00:41:21

标签: linux bash shell awk

嗨我有一个简单的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'

任何人都清楚为什么会这样?

1 个答案:

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