【发布时间】:2012-03-26 17:01:23
【问题描述】:
大家好,我正在尝试编写一个脚本,该脚本从父目录递归搜索目录并计算子目录中有多少文本文件 (.txt)。我还需要将文件的相对路径输出到父目录。
假设我有一个名为 Files 的文件夹
在这个文件夹中可能有:
Files/childFolder1/child1.txt
Files/childFolder1/child2.txt
Files/childFolder1/child3.txt
Files/childFolder2/child4.txt
Files/childFolder2/child5.txt
Files/child6.txt
所以输出是
The files are:
/childFolder1/child1.txt
/childFolder1/child2.txt
/childFolder1/child3.txt
/childFolder2/child4.txt
/childFolder2/child5.txt
/child6.txt
There are 6 files in the 'Files' folder
到目前为止,我有一个脚本是这样的:
#! /bin/csh
find $argv[1] -iname '*.txt'
set wc=`find $argv[1] -iname '*.txt' | wc -l`
echo "Number of files under" $argv[1] "is" $wc
我不知道如何进行输出,所以它只显示相对于目录的文件路径。目前我的输出是这样的:
/home/Alice/Documents/Files/childFolder1/child1.txt
/home/Alice/Documents/Files/childFolder1/child2.txt
/home/Alice/Documents/Files/childFolder1/child3.txt
/home/Alice/Documents/Files/childFolder2/child4.txt
/home/Alice/Documents/Files/childFolder2/child5.txt
/home/Alice/Documents/Files/child6.txt
Number of files under /home/Alice/Documents/Files is 6
这是不希望的。我也担心我如何设置$wc 变量。如果目录列表很大,那么这将获得巨大的开销。
【问题讨论】: