我是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。
请帮帮我。 谢谢!
答案 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
可以根据需要重定向输出。