입력 디스플레이:
(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)