如果我ls -o
我
-rw-rw-r-- 1 louise 347967 Aug 28 2017 Screenshot from 2017-08-28 09-33-01.png
-rw-rw-r-- 1 louise 377739 Aug 29 2017 Screenshot from 2017-08-29 10-39-49.png
-rw-rw-r-- 1 louise 340682 Aug 29 2017 Screenshot from 2017-08-29 10-40-02.png
我真的想删除前3列,所以我得到了
347967 Aug 28 2017 Screenshot from 2017-08-28 09-33-01.png
377739 Aug 29 2017 Screenshot from 2017-08-29 10-39-49.png
340682 Aug 29 2017 Screenshot from 2017-08-29 10-40-02.png
看来, ls
无法做到这一点。关于删除多个列,还有其他问题,但不是从头开始。
答案 0 :(得分:4)
JSONObject ratingsObj=reviewsObj.getJsonObject("ratings");
是一个互动工具,其输出为not supposed to be parsed。
考虑使用替代工具,例如ls
(推荐GNU版本):
stat
输出不完全相同,但您可以完全控制格式。 stat -c '%s %y %n' *
提供了有关可能的格式序列的更多信息。
使用GNU stat,您还可以使用stat --help
在格式字符串中添加换行符,例如换行符或制表符,以便于解析:
--printf
stat --printf '%s\t%Y\t%n\n' *
(最后修改,自Epoch以来的秒数)比%Y
(人类可读)更适合解析。
如果文件名包含换行符,这仍然会中断,因此根据您计划使用此信息的方式,您可能希望在结尾处使用%y
而不是\0
格式字符串和进程记录以空字节而不是换行符结束。
或者,您可能会发现循环浏览文件并逐个调用\n
,提取所需内容更容易:
stat
假设您使用基于循环的方法,您可以使用for file in *; do
read -r size modified name < <(stat '%s %Y %n' "$file")
# do whatever with $size, $modified and $name here
done
将日期转换为您想要的任何格式,例如:
date