删除 awk 中正则表达式中除逗号之外的所有标点符号



我有一个变量

 local= "[ 'service center','New' ]"

我使用以下awk代码删除了方括号和单引号,

  local=gensub(/[[]']+/, "", "g", local);
  local=gensub(/[^,[:punct:][:space:]]/, "", "g", local);

预期盈利为

local = "service center,New"

我编写的代码不起作用

原始问题:_How选择所有标点符号,除了<逗号>与正则表达式。

[:punct]定义为不是字母、数字、控制字符或空格字符的字符

[:punct] = [^[:alnum:][:cntrl:][:space:]]

因此,您想要的是不是字母、数字、控制字符、空格字符或<逗号>字符的字符

[^[:alnum:][:cntrl:][:space:],]

OP编辑后:

以下操作应执行请求的操作:

gsub(/(^[^[:alnum:],]*|[^[:alnum:],[:blank:]]|[^[:alnum:],]*$)/, "", local)

最新更新