
그래서 내 아카이브 관리자는 tar.xz 파일을 추출할 때 디렉터리 계층 구조를 보존하지 않은 것 같습니다. 이제 내 다운로드 폴더는 지저분하고 적절한 위치에 없는 파일로 가득 차 있습니다.
처음부터 아카이브에 있던 해당 파일만 삭제하고 싶습니다. 이를 위해 출력에서 각 파일 경로의 끝을 일치시키고 tar tf file.tar.xz
관련 파일을 삭제하려고 합니다 .
예를 들어 입력이 다음과 같은 경우:
tor-browser_en-US/Browser/firefox
tor-browser_en-US/Browser/firefox.real
tor-browser_en-US/Browser/fonts/
tor-browser_en-US/Browser/fonts/Arimo-Bold.ttf
나는 출력을 다음과 같이 원한다:
firefox
firefox.real
Arimo-Bold.ttf
삭제하면 됩니다.
나는 이것을 달성하려고 노력해 왔지만 sed 's/.*\/([^\/]+)$/\1/'
오류가 발생 sed: -e expression #1, char 19: invalid reference \1 on 's' command's RHS
하고 무엇을 더 시도해야 할지 잘 모르겠습니다.
답변1
sed '/\/$/d; s|.*/||'
/\/$/d
후행이 있는 모든 줄을 제거합니다 /
. s|.*/||
마지막 /
(있는 경우) 이전의 모든 항목과 /
자체 항목을 제거합니다.