我的一个文件夹包含以下格式的文件:
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
Run Code Online (Sandbox Code Playgroud)
我想检索日期值小于或等于我的输入日期值的那些文件。
例如,如果我给出“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
Run Code Online (Sandbox Code Playgroud)
我可以通过发出这样的命令来列出文件:
ls -l | grep '20150413\|20150414' |awk '{print $NF}'
Run Code Online (Sandbox Code Playgroud)
但我正在努力寻找<=匹配。
您可以使用awk及其字符串比较运算符。
ls | awk '$0 < "3_20150415"'
Run Code Online (Sandbox Code Playgroud)
在一个变量中:
max=3_20150414 export max
ls | LC_ALL=C awk '$0 <= ENVIRON["max"] "z"'
Run Code Online (Sandbox Code Playgroud)
在这里与“z”连接可确保比较是字符串比较,并允许在当天的任何时间,因为在C语言环境中,数字在z.