![sed를 사용하여 문자열 교체](https://linux55.com/image/132758/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EA%B5%90%EC%B2%B4.png)
내가 작성 중인 스크립트에는 두 개의 bash 변수가 있습니다.
num1=site_2734
num2=796
문자열이 포함된 svg 파일을 읽어야 합니다.
http://xxx-xxx.xxx.com/var/site_2734/storage/issues/796/svg/img/page-002-img1.jpg?q=80
첫 번째 부분을 "None"으로 바꾸고 "?q=10"을 제거하여 다음과 같이 만들고 싶습니다.
page-002-img1.jpg
그래서 sed로 이와 같은 것을 시도했지만 작동하지 않았습니다.
sed -i -e 's/\(http:\/\/xxx-xxx.xxx.com\/var\/$num1\/storage\/issues\/$num2\/svg\/img/\).*\(\)/\1\2/'
어떤 도움이라도 대단히 감사하겠습니다.
답변1
파일 이름 자체에 슬래시나 물음표가 포함되어 있지 않다는 것을 아는 것은 매우 간단합니다.
sed --in-place 's_http.*/img/\(.*\)?q=[0-9][0-9]*_\1_' inputfile
사이트 번호와 발행 번호가 꼭 필요한 경우 명령을 결합한 sed
다음 변수로 구현할 수 있습니다.
sedcmd='s_http.*'$num1'.*'$num2'.*/img/\(.*\)?q=[0-9][0-9]*_\1_'
sed --in-place "$sedcmd" inputfile