仅显示修改日期、修改时间和名称

问题描述 投票:0回答:1

我尝试从

ls -l
命令的输出中删除除修改日期、修改时间和名称之外的所有列。

drwxr-xr-x  5 john  staff     160 May 16 01:59 some-folder
-rw-r--r--@ 1 john  staff  759704 Apr 14 04:05 some-file.png

下面的命令几乎就是我想要的,只不过它留下了第二列,即整数 5 和 1。

ls -goh | sed -re 's/^[^ ]* //'

我已经尝试自己修复它,这是其中的尝试之一,

ls -goh | sed -re 's/^[^ ]* *\d* //'

但是好像

sed
正则表达式和我以前一直用的有点不一样。

我需要如何更改正则表达式以仅显示修改日期、修改时间和名称列?

--

查看评论,当前

awk
输出:

28M Mar 29 12:03 foo.dmg
96B Feb 9 15:33 bar.app
128B May 16 01:59 aaa
160B May 16 01:59 bbb

保留列会更好:

 28M Mar 29 12:03 foo.dmg
 96B Feb  9 15:33 bar.app
128B May 16 01:59 aaa
160B May 16 01:59 bbb
regex sed zsh ls
1个回答
0
投票

这是一个

awk
命令,可确保所有文件实际上具有完整的日期和时间信息,并更好地处理其中也包含空格的文件名:

ls -goh --time-style=long-iso | awk '{filename = ""; for (i=6; i<=NF; i++) filename=filename $i " "; printf "%-10s %-5s %s\n", $4, $5, filename}'
© www.soinside.com 2019 - 2024. All rights reserved.