查找文件名大于的文件

时间:2015-03-26 14:01:50

标签: linux file ls

如果我有10个名为01-a.txt,02-a.txt,... 10-a.txt的文件 - 我怎样才能找到数字大于5的文件?我想要一个通用的解决方案,我会使用类似

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

我可以使用

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

但似乎无法超越这一点。

感谢。

4 个答案:

答案 0 :(得分:6)

您可以使用seq,但仅当所有文件具有相同的命名约定时才有效:

seq -f "%02g-a.txt" 6 10
06-a.txt
07-a.txt
08-a.txt
09-a.txt
10-a.txt

I.e。:

cat `seq -f "%02g-a.txt" 6 10` > bigfile.txt

答案 1 :(得分:2)

它会捕获所有名为“< 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

答案 2 :(得分:1)

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

这将列出数字为>的所有文件。 5

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

答案 3 :(得分:0)

ls *.txt | perl -n -e '$f = $_; $f =~ s/\D//g; $f > 5 and print'