0

原始文件:

{ 

A:2, 

B:2, 

C:2, 

}

必需的:

{

A:2,

B:2, 

C:2 

}

有没有办法在一行中使用 awk 或 sed 来做到这一点?

4

1 回答 1

2

使用 GNU awk:

$ cat file
{

A:2,

B:2,

C:2,

}

$ gawk -v RS='\0' -v ORS= '{print gensub(/,([^,]+)$/,"\\1","")}' file
{

A:2,

B:2,

C:2

}

如果您需要对包含上述多个块的文件执行此操作,请将脚本更改为:

gawk -v RS='\0' -v ORS= '{print gensub(/,([^,]+)$/,"\\1","")}' file

到:

gawk -v RS='\0' -v ORS= '{print gensub(/,([^,]+})/,"\\1","g")}' file

例如:

$ cat file
{

A:2,

B:2,

C:2,

}

{

D:2,

E:2,

F:2,

}
$
$ gawk -v RS='\0' -v ORS= '{print gensub(/,([^,]+})/,"\\1","g")}' file
{

A:2,

B:2,

C:2

}

{

D:2,

E:2,

F:2

}
于 2013-04-01T19:37:00.023 回答