您的位置:首页 > 运维架构 > Shell

用shell 批量处理任务

2015-08-25 23:47 489 查看

参考

shell教程

ls 的用法

#shell 代码

for i in 1 2 3 4 5 6
do
j=0
while [ $j -lt 20 ]
do
j=`expr $j + 1`
echo "i=$i j=$j"
./objectExtracter.exe D:\\Program\\matlab\\bgslibrary_mfc\\dataset\\video.sqlite $i $j
done
done

for file in `ls /home/user`
do
echo $file
cp /home/user/$file/*.doc /home/user/document/
done


注意 expr, 空格是必要的,同时 ` 不是 ’ (引号)

$ expr –help

Usage: expr EXPRESSION

ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2

ARG1 & ARG2 ARG1 if neither argument is null or 0, otherwise 0

ARG1 < ARG2 ARG1 is less than ARG2

ARG1 <= ARG2 ARG1 is less than or equal to ARG2

ARG1 = ARG2 ARG1 is equal to ARG2

ARG1 != ARG2 ARG1 is unequal to ARG2

ARG1 >= ARG2 ARG1 is greater than or equal to ARG2

ARG1 > ARG2 ARG1 is greater than ARG2

ARG1 + ARG2 arithmetic sum of ARG1 and ARG2

ARG1 - ARG2 arithmetic difference of ARG1 and ARG2

ARG1 * ARG2 arithmetic product of ARG1 and ARG2

ARG1 / ARG2 arithmetic quotient of ARG1 divided by ARG2

ARG1 % ARG2 arithmetic remainder of ARG1 divided by ARG2

match STRING REGEXP same as STRING : REGEXP

substr STRING POS LENGTH substring of STRING, POS counted from 1

index STRING CHARS index in STRING where any CHARS is found, or 0

length STRING length of STRING

quote TOKEN interpret TOKEN as a string, even if it is a

keyword like
match' or an operator like
/’

( EXPRESSION ) value of EXPRESSION

递归显示目录

$ ls -R |grep “./”

./BGSLib:

./BGSLib/include:

./BGSLib/include/dp:

./BGSLib/include/jmo:

./BGSLib/include/lb:



显示所有源文件的路径的shell脚本

recursiveAll () {
outfile=$2
file=$1
echo "file is $file"

if [ -f $file ]
then
echo "File is an ordinary file"
echo $file >> $outfile
else
echo "This is special file"
echo $file >> special.txt

if [ -d $file ]
then
echo "File is a directory"
echo $file >> dir.txt

for subfile in $file/*
do
echo "subfile is $subfile"
recursiveAll $subfile $outfile
done
else
echo "This is not a directory"
echo $file >> error.txt
fi
fi
}

echo "" > dir.txt
echo "" > special.txt
echo "" > error.txt
echo "" > files.txt
recursiveAll /E/yzbx_programe/QT/qt_bgslibrary/package_bgs files.txt

cat files.txt | grep .cpp$


输出:

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/AdaptiveBackgroundLearning.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/AdaptiveSelectiveBackgroundLearnin

g.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/FrameDifferenceBGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/GMG.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/MixtureOfGaussianV1BGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/MixtureOfGaussianV2BGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/StaticFrameDifferenceBGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/WeightedMovingMeanBGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/WeightedMovingVarianceBGS.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/ae/KDE.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/ae/KernelTable.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/ae/NPBGSubtractor.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/ae/NPBGmodel.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/av/TBackground.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/av/TBackgroundVuMeter.cpp

/E/yzbx_programe/QT/qt_bgslibrary/package_bgs/av/VuMeter.cpp

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: