如何从文件夹或文件名中提取特定名称

时间:2014-07-28 04:56:29

标签: linux awk csh

我是linux命令的新手。

现在我想从列出的文件名中仅提取日期值,并将其作为日期值进行比较。

例:
/ underdirectory

20080206
20080207个
bk_20080208

我想列出以上所有目录并比较日期,表示此目录大于或小于根据指定日期的目录。 如果所有列出的目录都是日期,则可以进行条件检查。

foreach date_directory(ls
        if(“$ date_directory”> =“$ fdate”&&"“$ date_directory”< =“$ tdate”)然后
            echo $ {target_del} $ {date_directory}>> $ {output}
        endif
    结束

但如果包含“bk_20080228”或“bk_20080228_bk”或“20080228_bk”或“20080228_tt”等词语,则会出现条件检查错误。

bk_20080208 只想采取20080208。

请帮帮我。 谢谢!

2 个答案:

答案 0 :(得分:0)

使用grep regex grep -Eo '[0-9]{4}[0-9]{2}[0-9]{2}'grep -Eo '[0-9]+'

答案 1 :(得分:0)

   shopt -s nullglob
   for i in *;do echo $i|sed 's/.*_//';done

可以根据需要重定向输出。