전체 경로(DOS 구문)에서 파일 이름과 포함 디렉터리를 추출해야 합니다. 더 큰 정규 표현식의 일부이므로 sed를 사용하여 이 작업을 수행해야 합니다.
입력 예: ..\home\test\somedir\anotherdir\myfile.txt
예상 출력: anotherdir\myfile.txt
어떤 도움이라도 대단히 감사하겠습니다.
감사해요
답변1
그냥 체계적으로 진행하세요. 한 줄을 임의의 접두사 .*
, 백슬래시 두 개, 백슬래시가 아닌 문자 등 세 부분으로 나누고 싶습니다 \\[^\\]*
. 마지막에서 두 번째 백슬래시 뒤의 내용을 캡처하고 나머지는 삭제합니다.
printf %s "$dos_path" | sed 's/^.*\\\([^\\]*\\[^\\]*\)$/\1/'
(일부 쉘은 백슬래시를 확장하므로 주의하십시오 echo
.)
답변2
awk를 사용하지 않는 특별한 이유가 있나요?
echo $DIR | awk -F'\' '{ print $(NF-1) "\\" $NF }'