Intereting Posts
разрешить создание сетей внутри тюрьмы freebsd Больше места на диске, ничего не есть на моем диске. Зачем? Поиск информации по протоколу FISH procmail сохранить в директорию и выполнить скрипт? linux + g ++: команда не найдена FUSE exfat 1.2.8 ОШИБКА: слишком маленький размер сектора: 2 ^ 0. Ошибка монтирования sudo: извините, вам не разрешено устанавливать следующие переменные среды Как заставить nohup не создавать выходные файлы и не есть все пространство? Проблема после удаления системного раздела на другом HD Как обрабатывать компиляцию ошибок GCC 4.7.0 с использованием GCC 6.2.1 как удалить последние две строки с разделителями из каждой строки в большом файле Bash – ненулевые аргументы для оператора (массив) Выключение ПК после приостановления процесса терминала (apt-get upgrade) Проблемы с gpg-agent в Manjaro Linux (KDE) grep для извлечения подстроки из огромной строки

rm -f файлы, начинающиеся с цифры

Я случайно перенаправил вывод CSV-файла в свой каталог. Как я могу rm только файлы, которые начинаются с числа, и оставить файлы, которые начинаются с буквы нетронутыми?

 mymachine$ ls 71.24 README.md 30 4.29 8 filter.sh 42.81 5.58 8.36 purchases.csv 1,208.8 100 16.7 2.56 21.78 269.96 

Что-то вроде этого должно это сделать:

 $ rm [0-9]* 

Помните, что вы всегда можете использовать echo с любыми аргументами глобализации, прежде чем позволить rm работать с ними.

 $ echo [0-9]* 100 1,208.8 16.7 21.78 2.56 269.96 30 42.81 4.29 5.58 71.24 8 8.36 

После выполнения команды rm выше:

 $ ls filter.sh purchases.csv README.md 

В этом случае вы также можете легко использовать find сочетании с параметрами -regex и -delete .

В папке сначала проверьте свой выбор файла:

 $ find . -regex "[^/]+/.*[0-9]+" 

Затем добавьте опцию -delete :

 $ find . -regex "[^/]+/.*[0-9]+" -delete 

Теперь ваши файлы удалены:

 $ ls filter.sh purchases.csv README.md 

Всегда сначала проверяйте свой выбор, так как с помощью регулярного выражения [^/]+/.*[0-9]+ выберет любой файл, содержащий номер в конце (например, md5 или hdf5 ).

Обратите внимание, что find автоматически обрабатывает подкаталоги. Если вы не хотите, чтобы это добавление -maxdepth 1 перед регулярным выражением.

Для OS X добавьте параметр -E .