Linux 是否从“ls”中删除前3列?

Linux 是否从“ls”中删除前3列?,linux,bash,awk,cut,Linux,Bash,Awk,Cut,如果我做了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 1

如果我做了
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
似乎做不到这一点。这里还有其他关于删除多列的问题,但不是从一开始就删除。

ls
是一个交互式工具,其输出为

考虑使用替代工具,如
stat
(建议使用GNU版本):

输出不完全相同,但您可以完全控制格式
stat--help
提供了有关可能的格式序列的更多信息

使用GNU stat,您还可以使用
--printf
在格式字符串中添加换行符或制表符等转义字符,以简化解析:

stat --printf '%s\t%Y\t%n\n' *
%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

ls
是一种交互式工具,其输出为

考虑使用替代工具,如
stat
(建议使用GNU版本):

输出不完全相同,但您可以完全控制格式
stat--help
提供了有关可能的格式序列的更多信息

使用GNU stat,您还可以使用
--printf
在格式字符串中添加换行符或制表符等转义字符,以简化解析:

stat --printf '%s\t%Y\t%n\n' *
%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

您应该看看为什么要删除这些列?如果是提供一个匿名列表给另一个用户,那么您可以使用
cut
。但是,如果您打算在那里解析信息,那么不要从
ls
开始-这不是为了这个目的!堆栈溢出不是代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。您应该了解为什么要删除这些列?如果是提供一个匿名列表给另一个用户,那么您可以使用
cut
。但是,如果您打算在那里解析信息,那么不要从
ls
开始-这不是为了这个目的!堆栈溢出不是代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:.
%y
有点接近
ls
的日期格式,但仍然非常奇怪<代码>2017-05-15 11:02:42.388552115+0200。有没有办法用
stat
获取
ls
样式的日期格式?
ls
中的日期格式没有很好的定义,正如我在问题开始时链接到的文章中所提到的。我编辑了我的答案,以展示如何使用GNU
date
来帮助转换格式。
%y
有点接近
ls
的日期格式,但仍然非常奇怪<代码>2017-05-15 11:02:42.388552115+0200。有没有办法用
stat
获取
ls
样式的日期格式?
ls
中的日期格式没有很好的定义,正如我在问题开始时链接到的文章中所提到的。我编辑了我的答案,以展示如何使用GNU
date
来帮助转换格式。