如果我有10个名为01-a.txt,02-a.txt,... 10-a.txt的文件 - 我怎样才能找到数字大于5的文件?我想要一个通用的解决方案,我会使用类似
之类的东西将所有文件的内容放入一个文件中cat *.txt > bigfile.txt
我可以使用
获取带有数字的文件ls *[0-9]*
但似乎无法超越这一点。
感谢。
答案 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'