![sed 명령 사용법, 쉘 스크립트에서 변수를 정의할 필요가 없습니다.](https://linux55.com/image/85159/sed%20%EB%AA%85%EB%A0%B9%20%EC%82%AC%EC%9A%A9%EB%B2%95%2C%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%A0%95%EC%9D%98%ED%95%A0%20%ED%95%84%EC%9A%94%EA%B0%80%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
두 가지 변수가 있습니다
source_repo="fdl_ppe_01_04_repos_svc"
target_repo="fdl_ppe_01_10_repos_svc"
현재 XML 파일에서 $source_repo의 모든 인스턴스를 $target_repo로 바꾸는 작업을 수행 중입니다.
sed "s/$source_repo/$target_repo/g" $1 > $1_changed
"fdl_ppe_01_XX_repos_svc" 패턴과 일치하고 $target_repo로 대체하도록 sed 명령의 형식을 지정하는 방법(XX는 두 자리만 가능)
...기본적으로 더 이상 스크립트에서 $source_repo를 정의하고 싶지 않습니다.
sed 구문을 이해하는 데 어려움을 겪고 있으므로 도움을 주시면 대단히 감사하겠습니다!
답변1
sed 명령에 사용되는 문자 일치:
문자 클래스 - [:digit:] = 숫자 [0-9]
sed "s/fdl_ppe_01_[0-9][0-9]_repos_svc/$target_repo/g" $1 > $1_changed
나는 $1_changed가 당신이 원하는 결과를 제공할 것이라고 믿습니다.