我可以在目录中列出Python文件,从最近更新到最新的
ls -lt *.py
但是我该如何按顺序grep这些文件?
我知道一个人绝对不要尝试解析ls
的输出,因为这样做是非常危险的事情。
答案 0 :(得分:8)
您可以使用此管道通过gnu
实用程序来实现此目的:
find . -maxdepth 1 -name '*.py' -printf '%T@:%p\0' |
sort -z -t : -rnk1 |
cut -z -d : -f2- |
xargs -0 grep 'pattern'
这将处理带有特殊字符的文件名,例如空格,换行符,glob等。
find
查找当前目录中的所有*.py
文件,并显示修改时间(纪元值)+ :
+文件名+ NUL
字节sort
命令在时间戳的第一列上执行反向数字排序cut
命令从输出中删除第一列(时间戳)xargs -0 grep
命令在每个文件中搜索pattern