我的一个文件夹包含以下格式的文件:
3_20150412104422154033.txt
3_2015041211022775012.txt
3_20150412160410171639.txt
3_20150412160815638933.txt
3_20150413161046573097.txt
3_20150413161818852312.txt
3_20150413163054600311.txt
3_20150413163514489159.txt
3_2015041321292659391.txt
3_20150414124528747462.txt
3_20150414125110440425.txt
3_20150414134437706174.txt
3_20150415085045179056.txt
3_20150415100637970281.txt
3_20150415101749513872.txt
我想检索那些日期值小于或等于我输入的日期值的文件。
例如,如果我输入“ 3_20150414”,即(3_YYYYMMDD),则我希望输出为文件名
3_20150412104422154033.txt
3_2015041211022775012.txt
3_20150412160410171639.txt
3_20150412160815638933.txt
3_20150413161046573097.txt
3_20150413161818852312.txt
3_20150413163054600311.txt
3_20150413163514489159.txt
3_2015041321292659391.txt
3_20150414124528747462.txt
3_20150414125110440425.txt
3_20150414134437706174.txt
我可以通过发出如下命令来列出文件:
ls -l | grep '20150413\|20150414' |awk '{print $NF}'
但是我在努力寻找<=
比赛。
您可以使用awk
和它的字符串比较运算符。
ls | awk '$0 < "3_20150415"'
在变量中:
max=3_20150414 export max
ls | LC_ALL=C awk '$0 <= ENVIRON["max"] "z"'
在此处与“ z”串联可确保比较是字符串比较,并允许当天的任何时间,因为在C
语言环境中,数字在之前排序z
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句