sed에 대한 정규식

sed에 대한 정규식
./Queen/(1986)/Innuendo/01.One vision.mp3
./Queen/(1986)/Innuendo/02.One vision.mp3
./Queen/(1986)/Innuendo/03.One vision.mp3

위의 줄을 다음과 같이 표시하고 싶습니다.

01.One vision.mp3
02.One vision.mp3
03.One vision.mp3

나는 이전에 시도했습니다:

  sed -i 's/^[^.$/]/ /g/ 

답변1

/주요 문제는 구분 기호 로 사용하려고 하는 동시에 /구문 분석할 문자이기도 한다는 것입니다.

파이프와 같은 다른 구분 기호를 사용해야 합니다. 모든 항목과 a를 일치시킨 /다음 \(\)(캡처 그룹)을 사용하여 추출하려는 부분을 분리하고 다음 \1을 사용하여 그룹을 렌더링합니다.

echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'

그룹을 캡처하지 않고도 작동하게 할 수 있습니다. 끝까지 모든 것을 제거하면 됩니다 /.

echo "yourstring" | sed 's|.*/||'

답변2

basename이런 목적이 아닌가? 예를 들어:

for file in *mp3; do basename "$file"; done

관련 정보