awk-打印所有列后删除新行

awk-打印所有列后删除新行,awk,newline,Awk,Newline,我正在运行以下awk脚本 awk 'BEGIN { FS="|" ; OFS="|" }; { printf $0, $1 "_" $2 }' .someFile 不幸的是,字段1和2的concatention打印在新行上,看起来最后一个字段包含新行字符 我怎样修剪它 如果您想使用printf(这可能是偶然的),我想您可以使用: awk 'BEGIN { FS = OFS = "|" } { printf "%s%s%s_%s", $0, OFS, $1, $2 }' .someFile

我正在运行以下awk脚本

awk 'BEGIN { FS="|" ; OFS="|" };  { printf $0, $1 "_" $2  }' .someFile
不幸的是,字段1和2的concatention打印在新行上,看起来最后一个字段包含新行字符


我怎样修剪它

如果您想使用
printf
(这可能是偶然的),我想您可以使用:

awk 'BEGIN { FS = OFS = "|" } { printf "%s%s%s_%s", $0, OFS, $1, $2 }' .someFile
printf
应始终与格式字符串一起使用
printf
不会将输出记录分隔符添加到打印内容的末尾,因此您必须自己使用格式字符串中的
\n
或添加
%s
并将
or
作为最后一个参数传递到
printf

在这种情况下,我认为您可以只使用
print

awk 'BEGIN { FS = OFS = "|" } { print $0, $1 "_" $2 }' .someFile
请阅读并按照它的建议去做。