I can list the Python files in a directory from most recently updated to least recently updated with
ls -lt *.py
But how can I grep those files in that order?
I understand one should never try to parse the output of ls
as that is a very dangerous thing to do.
You may use this pipeline to achieve this with gnu
utilities:
find . -maxdepth 1 -name '*.py' -printf '%T@:%p\0' |
sort -z -t : -rnk1 |
cut -z -d : -f2- |
xargs -0 grep 'pattern'
This will handle filenames with special characters such as space, newline, glob etc.
find
finds all *.py
files in current directory and prints modification time (epoch value) + :
+ filename + NUL
bytesort
command performs reverse numeric sort on first column that is timestampcut
command removes 1st column (timestamp) from outputxargs -0 grep
command searches pattern
in each fileIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With