我有一个包含日志文件的文件夹,所有这些文件名都遵循相同的模式,唯一改变的是例如日期:Sample_file_20131108.txt
我有一个bash脚本,它将年,月和日期作为输入和处理在该特定日期生成的文件。
例如./myscript.sh 2011
将处理2011年生成的所有脚本./myscript.sh 201108
将处理2011年第8个月生成的文件。我也可以指定某个日期。这就是我被困住的地方,我希望能够指定一个月的18-25之间的日期。我尝试将此作为输入myscript.sh 201108{12..25}
,但这不起作用。所以我试图找出如何将其纳入脚本。
这是我所拥有的
if [ $# -ne 1 ]
then
echo $#
exit 1
fi
month=$1
#2. Find files of the month to process
LISTFILES=$TEMPDIR/listfiles.txt.$$
echo ''
echo '#2. Finding the files to process'
for i in `find . -name "sample_file*$month*.txt"`
do
echo $i >> $LISTFILES
done
echo 'done'
答案 0 :(得分:1)
构造myscript.sh 201108{12..25}
将扩展为myscript.sh 20110812 20110813 20110814 ...
,因此您的脚本必须处理多个输入参数,通常使用while循环和shift
命令。
while [[ -n "$1" ]] ; do
month=$1
for i in `find . -name "sample_file*$month*.txt"`
do
echo $i >> $LISTFILES
done
shift
done