如何在打印$ 0时删除awk中的字段分隔符?

时间:2014-03-20 10:48:16

标签: awk field separator

例如,文件的每一行都是:

1, 2, 3, 4,..., 1000

如何打印

1 2 3 4 ... 1000

4 个答案:

答案 0 :(得分:4)

您需要设置OFS(输出字段分隔符)。不幸的是,这没有任何影响,除非你也修改字符串,导致相当神秘:

awk '{$1=$1}1' FS=, OFS=

尽管如果您对添加了一些额外空间感到满意,可以将OFS保留为默认值(单个空格),然后执行以下操作:

awk -F, '{$1=$1}1'

如果你不介意在输出中省略空行,你可以进一步简化为:

awk -F, '$1=$1'

答案 1 :(得分:3)

如果您只想删除逗号,可以使用tr

$ tr -d ',' <file
1 2 3 4 1000

如果它更通用,您可以在开始栏中设置FSOFS(阅读about FS and OFS):

awk 'BEGIN{FS=","; OFS=""} ...' file

答案 2 :(得分:1)

FS设置为输入字段分隔符。然后,分配给$1将使用输出字段分隔符重新格式化字段,默认为空格:

awk -F',\s*' '{$1 = $1; print}'

有关$1 = $1

的说明,请参阅GNU Awk Manual

答案 3 :(得分:1)

您还可以删除字段分隔符:

awk -F, '{gsub(FS,"")} 1'