
因此,我的存檔管理器在提取 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|.*/||
刪除最後一個/
(如果有)及其/
本身之前的所有內容。