我有一个变量
local= "[ 'service center','New' ]"
我使用以下 awk 代码删除方括号和单引号,
local=gensub(/[\[\]']+/, "", "g", local);
预期 O/P 为
local =" service center,New "
我写的代码不起作用
答案1
您可以用非标点符号替换逗号,删除所有剩余的标点符号,然后恢复逗号:
awk -v local="[ 'service center','New' ]" '
BEGIN {
gsub(/,/, SUBSEP, local)
gsub(/[[:punct:]]/, "", local)
gsub(SUBSEP, ",", local)
printf("local=\"%s\"\n", local)
}'
local=" service center,New "
在这里,我使用内置的 SUBSEP 变量,如GNU awk 手册因此:
的默认值
SUBSEP
是 string"\034"
,它包含不太可能出现在 awk 程序或大多数输入数据中的非打印字符
答案2
请找到下面的命令,它运行良好
cat filename
local= "[ 'service center','New' ]"
sed "s/[^a-zA-Z,= \" ]//g" filename
output: local= " service center,New "
Command: sed "s/[^a-zA-Z,= \" ]//g" filename