【发布时间】:2011-06-28 04:32:48
【问题描述】:
所以我有一个 bash 脚本,它 greps 一系列子目录,查找包含特定字符串的文件,然后打印文件总数和目录总数以查找字符串的出现。代码如下。
for dir in $(find * -type d); do
echo "directory: $dir" >> $OUT
for f in $(find $dir/* -type f); do
echo -n "$(basename $f) " >> $OUT
grep -c -h $1 $f >> $OUT
done
echo -n "directory total: " >> $OUT
grep -c -h $1 $dir/*.* | awk '{SUM += $1} END {print SUM}' >> $OUT
done
当它这样做时,如果我读入 10 个文件,它会在文本文件中将它们列为 file1.txt、file10.txt、file2.txt 等...
有什么方法可以让它打印 file1.txt、file2.txt、file3.txt 等,并让第 10 个文件按顺序列出?
我是 BASH 的新手,所以我想知道是否有人对此有所了解。非常感谢任何帮助。是的,这些文件的字面意思是 file1.txt、file2.txt 等。这主要是为了让自己熟悉 BASH 脚本。
【问题讨论】:
-
出于这个原因,我通常将文件命名为
file01.txt、file02.txt、...file99.txt。