найти файлы, число которых в имени файла больше, чем
Если у меня есть 10 файлов, вызываемых 01-a.txt, 02-a.txt,...10-a.txt - как я могу найти файлы, где число больше 5? Мне бы хотелось общее решение, и я бы поместил содержимое всех файлов в один файл, используя что-то вроде
cat *.txt > bigfile.txt
Я могу получить файлы с числами, используя
ls *[0-9]*
Но, кажется, не может пойти дальше этого.
Спасибо.
3 ответа:
Для этого можно использовать
seq
, но это работает только в том случае, если все файлы имеют одинаковое соглашение об именовании:seq -f "%02g-a.txt" 6 10 06-a.txt 07-a.txt 08-a.txt 09-a.txt 10-a.txt
То есть:
cat `seq -f "%02g-a.txt" 6 10` > bigfile.txt
Он будет cat все файлы с именем " - " и имеющие это больше, чем
$LIM
.Даже если они записаны с одной единственной цифрой (например 5), с двумя цифрами (например 05), или даже больше...
И даже если отличаются среди файлов.
LIM=5 for file in $(ls); do number=$(echo $file | cut -f1 -d'-'); [ $number -gt $LIM ] && cat $file >> bigfile.txt; done