find -type f | egrep "[0-9]{3}\.txt$" | grep -v pure_
Программа find
ищет файлы, начинающиеся в вашем текущем каталоге.
egrep
применяет расширенные регулярные выражения, фильтруя три цифры, к которым добавляется ".txt" (точки должны быть экранированы, иначе "Atxt" тоже будет соответствовать )в конце строки.
grep
отфильтровывает(-v
)строк со строкой "чистый _" (Я не уверен, что место "чистого _" важно ).
У вас уже есть список файлов, так что самый простой способ,так как вы говорите, что есть только несколько сценариев, было бы перебрать тот же файл (, скажем file.list
), и стереть их.
Что-то в этом роде:
for r in "$(cat ${LIST})"
do
ssh "${HOST}" rm "${DST}/$r"
done
< "$LIST" ssh $HOST xargs -i% rm "$DST/%"
Использование одного сеанса ssh.
Предположим, что ваш список состоит из файлов и не содержит каталогов, удаление последних может быть обременительным.
РЕДАКТИРОВАТЬ :Чтобы объяснить это предыдущее замечание, учитывая, что вопрос не включает образец входного файла, нужно сделать предположения об этом.
Мой ответ должен справиться с этим, если входной файл выглядит примерно так:
script1.sh
script2.sh
script3.sh
Если ваш входной файл был таким:
script1.sh
script2.sh
somedir/
(У IE есть целый каталог для копирования ), тогда будет сложнее понять, что удалять в отношении somedir/
(, нам придется перечислять somedir/
локально и использовать эта информация для очистки ).