도움이 필요합니다. 원본 파일 이름과 대체 파일 이름도 필요합니다. 내 파일은 다음과 같습니다.
bmb/eng/case.bmb
출력은 다음과 같아야 합니다.
bmb/case.bmb
bmx/eng/case.bmx
여기서 사용하는 명령은 다음과 같습니다.
$ echo bmb/eng/case.bmb | sed -E 's/.*/& &/;:a;s/([^ ]* [^\n]*)(bm)b/\1\2x/;ta;s~/~&eng&~2'
bmb/eng/eng/case.bmb bmx/eng/case.bmx
내가 얻는 결과는 다음과 같습니다.
bmb/eng/eng/case.bmb bmx/eng/case.bmx
답변1
-e
여러 sed 표현식을 실행하려면 이 옵션을 사용하십시오 . 전역 교체BB그리고BMX, s/bmb/bmx/g
.삽입하려면영어s#/#/eng/#
두 번째 표현식에서는 백슬래시 없이 슬래시만 입력할 수 있도록 해시 문자를 사용하여 표현식과 대체 항목을 구분합니다 .
결과:
$ echo bmb/case.bmb | sed -e 's/bmb/bmx/g' -e 's#/#/eng/#'
bmx/eng/case.bmx
나를 혼란스럽게 하는 것은 당신의 명령도 작동해야 한다는 것입니다. &
두 번째 표현식에서는 슬래시를 사용하지 않았지만 이는 단지 가독성을 위한 것입니다. 어디메뉴불분명하다. 어쩌면 일부 맥락이 누락된 것일까요?