В bash, как бы я сказал, если файл не заканчивается на «* _01-1.html», удалить его? - PullRequest
1 голос
/ 19 января 2011

Google не помогает мне, и я не могу понять синтаксис.

for file in *_01.html
  do 
    <I want to say if a file does NOT end in *_01.html OR *.pdf then delete it>
  done

поэтому в одном каталоге я пытаюсь заставить его циклически проходить по каждому файлу, и если этот файл НЕ заканчивается в what_01.html ИЛИ what.pdf, затем удалите его.

Ответы [ 2 ]

4 голосов
/ 19 января 2011

В Баш:

shopt -s extglob
rm !(*_01.html|*.pdf)
1 голос
/ 20 января 2011

Если вы хотите сделать это рекурсивно (скажем, также во всех подкаталогах), сделайте следующее:

find . -type f ! -name '*_01.html' -exec rm {} \; 

find - это команда, которая ищет файлы в подкаталогах по умолчанию.Здесь вы говорите: «пожалуйста, найдите сущности , а не , заканчивающиеся на« _01.html », которые не являются каталогами, и передайте каждую запись в качестве аргумента команде« rm »».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...