awk,设置FS="&引用;似乎不起作用,有什么需要注意的吗?

awk,设置FS="&引用;似乎不起作用,有什么需要注意的吗?,awk,Awk,好的,我正试图写一个简单的awk来清除一些csv文件中的逗号 下面是几行示例数据 PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011 10:09:14 PM,,,,,5,,,4,, PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011 10:09:23 PM,,,,,67,,,69,, PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011 10:09:40 PM,,,,

好的,我正试图写一个简单的awk来清除一些csv文件中的逗号

下面是几行示例数据

  PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011  10:09:14 PM,,,,,5,,,4,,
  PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011  10:09:23 PM,,,,,67,,,69,,
  PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011  10:09:40 PM,,,,,7,,,5,,
  PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011  10:09:40 PM,,,,,6,,,5,,
作为一个简单的第一步,我想做这件事(我最后通牒想做的事情更复杂,但这是我需要做的第一件事,我甚至不能做对:()

这是我第一次尝试awk脚本

  #!/bin/awk 
  BEGIN{FS=",";} 
  {print $0,$4,$7,$11,$16,$19 }
  END{print "DONE"}
产生

  PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011  10:09:14 PM,,,,,5,,,4,,,,,,,
  PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011  10:09:23 PM,,,,,67,,,69,,,,,,,
  PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011  10:09:40 PM,,,,,7,,,5,,,,,,,
  PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011  10:09:40 PM,,,,,6,,,5,,,,,,,
 $$PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011  10:09:14 PM,,,,,5,,,4,,$$
  $$PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011  10:09:23 PM,,,,,67,,,69,,$$
  $$PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011  10:09:40 PM,,,,,7,,,5,,$$
  $$PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011  10:09:40 PM,,,,,6,,,5,,$$
我尝试了一个更具说服力的脚本:

  #!/bin/awk 
  BEGIN{FS=",";} 
  {printf("$$%s$$", $0) }
  END{print "DONE"} 
产生

  PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011  10:09:14 PM,,,,,5,,,4,,,,,,,
  PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011  10:09:23 PM,,,,,67,,,69,,,,,,,
  PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011  10:09:40 PM,,,,,7,,,5,,,,,,,
  PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011  10:09:40 PM,,,,,6,,,5,,,,,,,
 $$PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011  10:09:14 PM,,,,,5,,,4,,$$
  $$PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011  10:09:23 PM,,,,,67,,,69,,$$
  $$PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011  10:09:40 PM,,,,,7,,,5,,$$
  $$PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011  10:09:40 PM,,,,,6,,,5,,$$
显示(我认为)FS=“,”并不是将分隔符设置为逗号,因为整行被视为一列。我还尝试了该行的许多不同形式,但似乎没有任何区别。awk实现的手册页说FS是我应该设置的变量。我还尝试了hte-F标志,这也没有帮助


这里有什么明显的遗漏吗?

awk
中,
$0
不是第一列,而是整行。
$1
是第一列,第二列是
$2
,依此类推。因此,您可能想要更改此项:

{print $0,$4,$7,$11,$16,$19 }
为此:

{print $1,$5,$8,$12,$17,$20 }

啊哈,我知道这是一个非常简单的问题。谢谢:)+1格式良好的问题,带有示例输入和输出。祝你好运