嗨,我有一个简单的组合两个文件的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 perfect”
合并两个文件后,此字符将变为制表符分隔符。
比如“不完美”
有人知道为什么会这样吗?
最佳答案
您已将输出分隔符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])
关于linux - 通过awk空间合并两个文件后成为制表符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29957084/