Да, их можно удалить. Это файлы дампа после сбоев ядра.
Вы можете бросить беглый взгляд, чтобы понять, почему произошло сбой ядра. По крайней мере, поймите, старые это или недавние сбои.
Допустим, у меня есть файлы с расширением.MP4:
.
├── 1.MP4
├── 2.MP4
└── 3_special.MP4
Если я правильно понимаю, вам нужны имена не -специальных файлов без расширения.MP4.
Прежде всего, я бы использовал find
вместо ls
, потому что его легче контролировать и проще анализировать вывод. В любом случае вы получите список файлов, разделенных символами новой строки:
$ find. -name '*.MP4' -not -name '*_special.MP4'
./1.MP4
./2.MP4
Ваша команда sed будет работать как есть, потому что $
в шаблоне привязывается к концу каждой строки:
$ find. -name '*.MP4' -not -name '*_special.MP4' | sed -e 's/\.MP4$//'
./1
./2
Командаbasename
фактически сделает большую часть этого за вас; вам даже не нужно sed
! Основное использование basename
— удаление каталога из начала пути, но он также поддерживает удаление суффиксов.
SYNOPSIS
basename string [suffix]
basename
принимает только одно слово в позиции «строка», поэтому вам нужно использовать xargs для запуска его один раз для каждого файла.
$ find. -name '*.MP4' -not -name '*_special.MP4' | xargs -I -name- basename -name-.MP4
1
2
С ударом:
shopt -s extglob # enable extglob
mylist=( !(*_special.MP4) ) # fill array but without files with suffix _special.MP4
echo "${mylist[@]%.MP4}" # remove suffix.MP4