BASH命令和SHELL脚本总结(8)循环篇
2012-09-29 16:38
736 查看
@WHILE循环语句@
v1=1
while [ "$v1"-lt "6" ]#注[和]的前后都有空格, -lt的前后都有空格
do
echo"this is the $v1 time of showing up"
v1=$(($v1+1)) #注意$(( ))是数学计算式
done
@FOR循环语句@
for ((i=1;i<=$LENGTH_EXTEND_DAYS;i++))
do
...
done
例如
filelist=""
for ((i=1;i<=$LENGTH_EXTEND_DAYS;i++))
do
DATEi=`date +%Y%m%d -d "$DATE $i days ago"`
if [ $i -le $LENGTH_DAYS ]; then
file=$OUTPUT_PATH/$DATEi/1day.txt
else
file=$OUTPUT_PATH/$DATEi/1day_one.txt
fi
if [ -s $file ]; then
tempfile=$file.tmpfile
cat $file |awk-F"\t" -v delta=$i '{printf("%s",$1); for (i=2; i<=NF;i++) {split($i,a,"|");printf("\t%s|%s|%s|%d",a[1],a[2],delta+1,a[3]); } printf("\n")}' >$tempfile
filelist=$filelist""$tempfile
fi
done
sort -m --temporary-directory=./ $filelist >$WEEK_MERGE.imcomplete
mv $WEEK_MERGE.imcomplete $WEEK_MERGE
rm -f $filelist
@遍历文件夹中的文件@
INDEX_FILE_LIST=`ls$INDEX_WEBSITE_DIR`
for INDEX_FILE_NAME in $INDEX_FILE_LIST
do
INDEX_TIME=${INDEX_FILE_NAME#*.}
CACHE_FILE_HOURLY_OUTPUT=$CACHE_DIR/cache.file.$INDEX_TIME
awk -F"\t" '{
cache_map_single_file[$1]=$3
}END{
for(i in cache_map_single_file)
printi"\t"FILENAME"-"cache_map_single_file[i]
}'>$CACHE_FILE_HOURLY_OUTPUT $INDEX_WEBSITE_DIR/$INDEX_FILE_NAME
done
@遍历文件夹中的文件@
filelist=`ls A`
for filename in $filelist
do
your-command $filename >${filename}.new
done
v1=1
while [ "$v1"-lt "6" ]#注[和]的前后都有空格, -lt的前后都有空格
do
echo"this is the $v1 time of showing up"
v1=$(($v1+1)) #注意$(( ))是数学计算式
done
@FOR循环语句@
for ((i=1;i<=$LENGTH_EXTEND_DAYS;i++))
do
...
done
例如
filelist=""
for ((i=1;i<=$LENGTH_EXTEND_DAYS;i++))
do
DATEi=`date +%Y%m%d -d "$DATE $i days ago"`
if [ $i -le $LENGTH_DAYS ]; then
file=$OUTPUT_PATH/$DATEi/1day.txt
else
file=$OUTPUT_PATH/$DATEi/1day_one.txt
fi
if [ -s $file ]; then
tempfile=$file.tmpfile
cat $file |awk-F"\t" -v delta=$i '{printf("%s",$1); for (i=2; i<=NF;i++) {split($i,a,"|");printf("\t%s|%s|%s|%d",a[1],a[2],delta+1,a[3]); } printf("\n")}' >$tempfile
filelist=$filelist""$tempfile
fi
done
sort -m --temporary-directory=./ $filelist >$WEEK_MERGE.imcomplete
mv $WEEK_MERGE.imcomplete $WEEK_MERGE
rm -f $filelist
@遍历文件夹中的文件@
INDEX_FILE_LIST=`ls$INDEX_WEBSITE_DIR`
for INDEX_FILE_NAME in $INDEX_FILE_LIST
do
INDEX_TIME=${INDEX_FILE_NAME#*.}
CACHE_FILE_HOURLY_OUTPUT=$CACHE_DIR/cache.file.$INDEX_TIME
awk -F"\t" '{
cache_map_single_file[$1]=$3
}END{
for(i in cache_map_single_file)
printi"\t"FILENAME"-"cache_map_single_file[i]
}'>$CACHE_FILE_HOURLY_OUTPUT $INDEX_WEBSITE_DIR/$INDEX_FILE_NAME
done
@遍历文件夹中的文件@
filelist=`ls A`
for filename in $filelist
do
your-command $filename >${filename}.new
done
相关文章推荐
- BASH命令和SHELL脚本总结(13)BASH中的快捷键和简写
- BASH命令和SHELL脚本总结(12)如何对字段进行操作
- BASH命令和SHELL脚本总结(5)赋值篇
- BASH命令和SHELL脚本总结(6)括号篇
- BASH命令和SHELL脚本总结(7)判断篇
- BASH命令和SHELL脚本总结(9)其它篇
- BASH命令和SHELL脚本总结(17)在BASH中计算两天的间隔天数
- BASH命令和SHELL脚本总结(11)比较两个文件创建时间的先后
- BASH命令和SHELL脚本总结(16)父脚本中export的变量在子脚本中的可见性测试
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- BASH命令和SHELL脚本总结(14)cat和grep和sort
- BASH命令和SHELL脚本总结(2)常识篇
- BASH命令和SHELL脚本总结(3)命令篇
- BASH命令和SHELL脚本总结(19)递归地拷贝目录结构
- BASH命令和SHELL脚本总结(15)find和xargs和exec和rsync
- BASH命令和SHELL脚本总结(4)AWK篇
- BASH命令和SHELL脚本总结(1)入门篇
- BASH命令和SHELL脚本总结(10)脚本互相调用篇
- Shell脚本test命令使用总结和实例
- Hadoop之HDFS的Shell脚本命令总结