输入显示:
(TJ)-8.5(o12)-3.2(p1)-15.3(ik)-1.2(1)
结果必须是:
(TJ)-.(o12)-.(p1)-.(ik)-.(1)
括号中包含的任意位数的数字不应被替换,但所有其他任意位数的数字都可以。
答案1
使用 GNU awk
:
gawk '{print gensub(/(\([^)]*\))|[0123456789]+/, "\\1", "g")}'
基本上翻译为sed
:
sed -E 's/(\([^)]*\))|[0123456789]+/\1/g'
答案2
使用用于多字符 RS 的 GNU awk:
$ echo '(TJ)-8.5(o12)-3.2(p1)-15.3(ik)-1.2(1)' |
awk -v RS='[(][^)]+)' '{gsub(/[0-9]/,""); printf "%s%s", $0, RT}'
(TJ)-.(o12)-.(p1)-.(ik)-.(1)