首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求教shell脚本中一个列出满足条件的目录的有关问题

2012-06-23 
求教shell脚本中一个列出满足条件的目录的问题比如当前目录下有如下子目录:20120619191604201206192018392

求教shell脚本中一个列出满足条件的目录的问题
比如当前目录下有如下子目录:
20120619191604 20120619201839 20120619222051 20120620001125 20120620233303 20120621050645 20120619053127 20120619114240 20120619162924 20120619192603 20120619202456 20120619230025 20120620001215 20120620233410 20120619061643 20120619140020 20120619162954 20120619195104 20120619203302 20120619232141 20120620001816 2012062023373
我想想出 20120619140020~20120620001816之间的目录,shell脚本内容如下:

C/C++ code
#!/usr/bin/env bashitems=`ls`echo "${items}"echo "----------------------------"for item in ${items}do        if [ [ "${item}" \> "20120619114240" -o "${item}" == "20120619114240" ] -a [ "${item} =="20120620001816" -o "${item}" \< "20120620001816" ] ] ;        then                echo "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"                echo ${item}                echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"        fidone


问题出在if语句上,我想要 "20120619114240" <= ${item} <= "20120620001816"。
请大侠出手指导一下,谢谢。

[解决办法]
目录下还有其他文件啊。。在取得items处加上guard试试

C/C++ code
items=`find . -name "[0-9]*" -type d | sed -e 's/^.*\///g'`
[解决办法]
探讨

PHP code
[User:root Time:05:04:20 Path:/home/liangdong/shell]$ cat test.sh
#!/bin/bash

begin="20120619140020";
end="20120620001816"

find . -name '[0-9]*' -type d | sed -r 's/.\///g' | while read ……

[解决办法]
试试

ls | awk '$0 >= 20120619140020 && $0 <= 20120620001816'

热点排行