将查找输出格式化为一个字段

Format find output into one field

我正在执行查找命令以按访问时间对项目进行排序:

$ find . -printf "%A+\t%p\n" | sort -r

输出如下所示:

2020-05-05+06:00:55.5569719990  ./form.py
2020-05-05+06:00:55.5569719990  ./amazon.js
2020-05-04+12:48:24.8209719990  ./historical.py

但是,我只想显示文件路径并在这样排序后删除时间戳,因此得到:

./form.py
./amazon.js
./historical.py

执行此操作的最佳方法是什么?

像这样:

find . -printf "%A+\t%p\n" | sort -r | cut -d$'\t' -f2- 

或者如果你想使用 ,你应该使用 TAB 作为分隔符(如果不是,它会在文件名上有空格的文件上中断):

find . -printf "%A+\t%p\n" | sort -r | awk -F$'\t' '{print }'

如果需要,您可以在此处使用 awk,它将为您找出分隔符:

find . -printf "%A+\t%p\n" | sort -r | awk '{print }'

注意它需要单引号并且字段是单索引的。