Mawk - 删除特殊字符

时间:2012-09-06 11:23:21

标签: awk

我使用mawk。

我有一个文件:

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

我想得到结果:

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

我试过了:

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

感谢您的帮助。

修改 例如:

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

2 个答案:

答案 0 :(得分:2)

你的gsub应该如下:

gsub(/\047/,"" )

chekc with

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]}

答案 1 :(得分:0)

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

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

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

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

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