You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从ls -o命令的输出结果中移除前3列?

移除ls -o输出的前3列

没错,ls本身确实没有内置选项来直接剔除输出里的指定列,不过咱们可以借助文本处理工具轻松搞定这个需求,这里推荐用awk——它能完美处理带空格的文件名(不像cut在这种场景下容易因为文件名里的空格出错)。

直接可用的命令

把ls -o的输出通过管道传给awk,让它从第4列开始打印所有内容:

ls -o | awk '{for(i=4; i<=NF; i++) printf "%s ", $i; print ""}'

命令拆解

  • ls -o:生成不含组信息的文件详细列表
  • awk部分:
    • NF代表当前行的总列数
    • 循环从第4列(i=4)遍历到最后一列,逐个打印内容并添加空格分隔
    • print ""用来在每行结束后换行,保证每个文件的信息单独占一行

如果你介意每行末尾多出来的空格,也可以用这个正则替换的版本:

ls -o | awk '{sub(/^[^ ]+ +[^ ]+ +[^ ]+ +/, ""); print}'

它会直接把开头的前三列(包括列之间的空格)替换为空,然后打印剩下的内容,格式更干净。

效果验证

假设你的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

执行命令后,就能得到你想要的结果:

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

内容的提问来源于stack exchange,提问作者Louise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:20