0

我用mawk。

我有一个文件:

{1: [u'Bank Pocztowy'], 2: [u'Pekao']}

我想得到结果:

{1: [uBank Pocztowy], 2: [uPekao]}

我试过这个:

mawk '{gsub("\'",""); print}' file

感谢您的帮助。

编辑: 示例:

$ mawk '{gsub("\'",""); print}' file
> 
4

2 回答 2

2

您的 gsub 应如下所示:

gsub(/\047/,"" )

检查与

mawk '{gsub(/\047/,""); print}' file

我没有在这里安装mawk。我只有nawk:

用 nawk 测试:

> echo "{1: [u'Bank Pocztowy'], 2: [u'Pekao']}" | nawk '{gsub(/\047/,"" ) ; print}'
{1: [uBank Pocztowy], 2: [uPekao]}

或者,如果您想要 perl 中的解决方案:

> echo "{1: [u'Bank Pocztowy'], 2: [u'Pekao']}" | perl -pe "s/\'//g"
{1: [uBank Pocztowy], 2: [uPekao]}
于 2012-09-06T11:29:24.873 回答
0

编辑:刚刚意识到它可以简化为

[gnm]awk 'gsub(/\47+/,"")+!+""'

你也可以剪掉最后的印刷品,让它跑得更快

 mawk/mawk2/gawk 'BEGIN { FS = "^$" } gsub(/[\047]+/, "") || 1'

设置 FS 以免花时间拆分字段。如果存在单引号,则 gsub() 返回将自动处理打印。“或 1”适用于该行不存在单引号的情况。

另一种方法是使用 FS 检测单引号

 mawk/mawk2/gawk 'BEGIN { FS = "\047" } (NF == 1) || gsub(/[\047]+/, "")'
于 2021-02-12T00:37:58.207 回答