我在我的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语句用逗号替换选项卡,
有任何建议我该怎么做?
答案 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