在awk中设置输出字段分隔符

时间:2013-12-30 17:46:35

标签: shell awk

我在我的awk脚本中尝试此语句(在包含单独代码的文件中,因此不是内联的),脚本名称:print-table.awk

BEGIN {FS = "\t";OFS = "," ; print "about to open the file"}
{print $0}
END {print "about to close stream" }

从shell中以这种方式运行

awk -f print-table.awk table

其中table是制表符分隔文件, 我的目标是在外部函数中声明字段分隔符(FS)和输出字段分隔符(OFS),并从shell调用

awk -f file input

不使用-F“\ t”在命令行中设置字段分隔符 并且没有stdout到sed语句用逗号替换选项卡,

有任何建议我该怎么做?

2 个答案:

答案 0 :(得分:17)

你需要说服某些东西已经改变,让它使用你的OFS重新格式化$ 0。以下工作虽然可能有更惯用的方法。

BEGIN {FS = "\t";OFS = "," ; print "about to open the file"}
{$1=$1}1
END {print "about to close stream" }

答案 1 :(得分:8)

你需要改变awk中的一个字段:

awk 'BEGIN {FS="\t";OFS=","; print "about to open the file"} {$1=$1}1' file