내 .txt 파일에 다음 전화번호가 있다고 가정해 보겠습니다.
(682) 543-7890
이 번호를 변경하려면 세 개의 sed 명령이 필요합니다.
- 괄호 안의 숫자(어떤 숫자든 가능)를 800
예시 텍스트로 바꿔야 합니다.
(800) 543-7890
- 다음으로 브래킷을 제거해야 합니다.
예시 텍스트:
800 543-7890
- 마지막 부분에서는 지역 번호와 나머지 숫자 사이의 공백에 대시를 추가해야 합니다.
예시 텍스트:
800-543-7890
내가 현재 시도한 것은 sed -e 's/([^()]*)//g'
대괄호와 내부의 모든 것을 제거합니다.
답변1
한 번의 sed
호출로 충분합니다.
sed 's/(.*) */800-/'
답변2
명령이 sed -e 's/([^()]*)//g'
거의 작동하지만 몇 가지 조정만 하면 됩니다.
# You don't need greedy command 'g'
# you have to account for the space
# you have to make the substitution
$ sed -e 's/([^()]*) */800-/'
800-543-7890
물론, 허용된 답변에서 알 수 있듯이 이를 수행하는 더 쉬운 방법이 있습니다.