
Итак, мой менеджер архивов, похоже, не сохранил иерархию каталогов при извлечении файла 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|.*/||
удаляет все до последней /
(если есть) и /
сам символ .