我正在gfind
MacOS 上运行来查找文本文件。
我试图仅查看文件名和gfind
结果的出生日期,然后按日期对它们进行排序,并对它们进行分页。这是可以实现的吗?
目前我正在尝试gfind . -name "*.txt" -printf "%f \t\t %Bc\n"
但结果如下:
todo.txt Fri Mar 4 17:47:41 2022
99AC1EF5-6BE3-556B-8254-84A8764819E0.txt Fri Mar 4 17:49:08 2022
chrome_shutdown_ms.txt Fri Mar 4 17:48:07 2022
index.txt Fri Mar 4 17:48:05 2022
index.txt Fri Mar 4 17:48:05 2022
index.txt Fri Mar 4 17:48:06 2022
index.txt Fri Mar 4 17:47:46 2022
index.txt Fri Mar 4 17:48:01 2022
index.txt Fri Mar 4 17:48:01 2022
index.txt Fri Mar 4 17:48:05 2022
index.txt Fri Mar 4 17:48:05 2022
index.txt Fri Mar 4 17:48:06 2022
index.txt Fri Mar 4 17:48:06 2022
index.txt Fri Mar 4 17:47:46 2022
index.txt Fri Mar 4 17:48:06 2022
LICENSE.txt Fri Mar 4 17:48:07 2022
english_wikipedia.txt Fri Mar 4 17:48:07 2022
female_names.txt Fri Mar 4 17:48:07 2022
male_names.txt Fri Mar 4 17:48:07 2022
有没有一种方法可以将输出制成表格,以显示其外观的一致性?我只想以更优雅的方式显示文件名和生日。
预先非常感谢!
答案1
在这里,您可以使用:
gfind . -name '*.txt' -printf '%-40f %Bc\n'
或者
gfind . -name '*.txt' -printf '%40f %Bc\n'
要打印左对齐或右对齐的文件名,并用空格填充,长度为 40 个字节(不幸的是,不是字符,也不是列)。
只要文件名不包含控制字符、多字节字符、零宽度字符或双宽度字符,且长度不超过 40 个字节,就会对齐它们。
请注意,如果您将日期放在第一位(此处使用 mtime (%T),而不是 Btime (%B),我怀疑这是否是您想要的,因为它没有反映文件生命周期中的任何有用信息),然后使用更有用且明确的时间戳格式,例如标准 YYYY-MM-DDTHH:MM:SS[.subsecond]+ZZZZ,那么您不必担心对齐问题,并且它使排序更容易:
find . -name '*.txt' -printf '%TFT%TT%Tz %f\n'