<1>을(를) _1(으)로 변경

<1>을(를) _1(으)로 변경

다음과 같은 것을 변경해야합니다

<1> to _1
<21> to _21

sed, awk 또는 vi를 사용하여 이를 자동화하는 방법이 있습니까?

참고: 꺾쇠 괄호 안의 숫자는 다양합니다.

답변1

그리고 sed:

sed 's/<\([0-9]*\)>/_\1/g'

질문의 예제에서 이것을 실행하면

_1 to _1
_21 to _21

패턴은 <\([0-9]*\)>내의 숫자와 일치합니다 <...>. 대체 텍스트 <...>이 비트 입력을 접두사가 붙은 숫자(있는 경우)로 대체합니다 _.


Vi에서:

:%s/<\([0-9]*\)>/_\1/g

sed명백한 역사적 이유로 이는 해결책이 됩니다.


<21>Bash의 쉘 변수에 이 문자열이 있는 경우 var:

printf '%s\n' "_${var//[<>]/}"

이는 _21변수 대체를 사용하여 인쇄 됩니다 ${parameter//pattern/string}.


그리고 tr. 참고: 이는모습매우 제한된 입력 세트를 처리합니다. 발생 위치에 관계없이 맹목적 <으로 대체 _하고 제거합니다 .>

tr '<' '_' <file.in | tr -d '>'

이것은 진지한 해결책이라기보다는 농담에 가까운 해결책이지만,작동할 것이다입력에 나타나는 유일한 합계가 중간에 숫자가 있는 경우 <입니다 .>

관련 정보