查找文件名中数字大于的文件

find files that have number in file name greater than

如果我有 10 个名为 01-a.txt、02-a.txt、...10-a.txt 的文件 - 如何找到编号大于的文件5?我想要一个通用的解决方案,我会使用

之类的东西将所有文件的内容放入一个文件中
cat *.txt > bigfile.txt

我可以使用

获取带有数字的文件
ls *[0-9]*

但似乎无法超越。

谢谢。

您可以为此使用 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

假设文件夹只包含这些文件。

这将列出数量大于 5 的所有文件

ls [0-9]* | awk -F '-' '{if ($1 > 5) 打印 $0}'

它会捕获所有名为“< numeric_value >-< rest >”并且< numeric_value > 大于 $LIM.

的文件

即使是一位数(如5)、两位数(如05)或更多。 ..

而且即使 在文件中是不同的。

LIM=5
for file in $(ls);
do
   number=$(echo $file | cut -f1 -d'-');
   [ $number -gt $LIM ] && cat $file >> bigfile.txt;
done
ls *.txt | perl -n -e '$f = $_; $f =~ s/\D//g; $f > 5 and print'