Shell
如何在 AWK 命令中添加多個搜尋
我正在嘗試搜尋在 6 月、7 月和 8 月創建的文件。我用了這個方法
ls -lrth|awk '/[Jun][Jul][Aug]/ {print}'
但它不起作用。
您可以匹配多個模式,如下所示:
awk '/Jun/ || /July/ || /Aug/' <(ls -lrh)
這將返回 Jun、July 或 Aug 的所有匹配項。您不需要該
awk
預設操作。
作為一般規則,解析 ls 的輸出是一個非常糟糕的主意。做你想做的更好的方法是
stat -c "%n %y" * | grep 2013-0[678]
或者,僅檢查最後一個欄位以防止文件名本身是日期的不太可能的情況:
stat -c "%n %y" *| awk '$NF ~ /2013-0[678]/'
來自
man stat
:-c --format=FORMAT use the specified FORMAT instead of the default; output a new‐ line after each use of FORMAT %y time of last modification, human-readable %n file name