Parsing awk中的字段分隔符

Parsing awk中的字段分隔符,parsing,awk,Parsing,Awk,我有以下“input.file”: 我想要的output.file是: 0.1, 0.1, 0.1 使用名为“parse.awk”的awk脚本: i、 e.没有空间 将pasre.awk更改为: BEGIN {FS = ":"} {for (i = 4; i <= NF; i += 2) printf ("%s%c", $i, i +2 <= NF ? ", " : "\n ");} BEGIN{FS

我有以下“input.file”:

我想要的output.file是:

0.1, 0.1, 0.1
使用名为“parse.awk”的awk脚本:

i、 e.没有空间

将pasre.awk更改为:

BEGIN {FS = ":"}
{for (i = 4; i <= NF; i += 2) printf ("%s%c", $i, i +2 <= NF ? ", " : "\n ");}
BEGIN{FS=“:”}

{对于(i=4;i您可以使用此
awk

awk -F: -v OFS=', ' '{
  for (i = 4; i <= NF; i += 2) printf "%s%s", $i, (i < NF-1 ? OFS : ORS)}' file

你能试试下面的内容吗?用英文写并测试

awk'
开始{FS=“:”}
val!=“打印val;val=”“}

{对于(i=4;i而言,问题是当您将输出分隔符从单个逗号(
“,
)更改为带空格的逗号(
”,“
);您没有将格式字符串从
%c
更改为
%s
)。因此,如何修复脚本:

BEGIN {FS = ":"}
{for (i = 4; i <= NF; i += 2) printf ("%s%s", $i, i +2 <= NF ? ", " : "\n ");}
#                                         ^ Change this
BEGIN{FS=“:”}

{对于(i=4;i您的输入中总是只有一行吗?如果您可以有多行,那么您应该发布至少有2行的示例输入/输出。这可能会有所帮助:
awk'{print$4,$6,$8}'FS=':'OFS=','file
0.1,0.1,0.1
BEGIN {FS = ":"}
{for (i = 4; i <= NF; i += 2) printf ("%s%c", $i, i +2 <= NF ? ", " : "\n ");}
awk -F: -v OFS=', ' '{
  for (i = 4; i <= NF; i += 2) printf "%s%s", $i, (i < NF-1 ? OFS : ORS)}' file
0.1, 0.1, 0.1
awk '
BEGIN {FS = ":"}
val!=""{ print val; val=""}
{for (i = 4; i <= NF; i += 2){
  val=(val==""?"":val", ")$i
  }
}
END{
  if(val!=""){
    print val
  }
}
' Input_file
BEGIN {FS = ":"}
{for (i = 4; i <= NF; i += 2) printf ("%s%s", $i, i +2 <= NF ? ", " : "\n ");}
#                                         ^ Change this