切割柱包括尺寸

时间:2013-05-04 13:05:21

标签: linux bash cut ls

我想剪切包含文件大小的列。我使用ls -l查看有关当前本地化文件的信息。我在txt文件ls -l > info.txt中保存有关文件的信息,现在我想删除包含大小的列。我做cat info.txt | cut -d'' -f6但我不工作。我做错了什么?

这包括info.txt:

-rwx------ 1 s10891 Domain Users   2188 May  4 14:51 info.txt
-rwx------ 1 s10891 Domain Users   1640 Mar 10 07:43 code.txt
-rwx------ 1 s10891 Domain Users     68 Mar  4 11:59 sorted.txt
drwx------ 1 s10891 Domain Users      0 Jan 11 09:48 PPJ
drwx------ 1 s10891 Domain Users      0 Sep  7  2012 public_html
drwx------ 1 s10891 Domain Users      0 Apr 15 11:16 RBD
drwx------ 1 s10891 Domain Users      0 Jan  7 09:45 RDB
drwx------ 1 s10891 Domain Users      0 Apr 15 12:00 SOP
drwx------ 1 s10891 Domain Users      0 Apr  8 12:53 sop_ex3
-rwx------ 1 s10891 Domain Users    122 Feb 25 11:48 sop_info.txt
drwx------ 1 s10891 Domain Users  0 Jan 14 09:41 WindowsFormsApplicati
drwx------ 1 s10891 Domain Users      0 Jan 14 09:41 WindowsFormsApplicati
drwx------ 1 s10891 Domain Users      0 Jan 14 09:41 WindowsFormsApplicati

我希望得到这个:

2188
1640
68
0
0
0
0
0
0
122
0
0
0

3 个答案:

答案 0 :(得分:8)

大多数cut个计数字面字符,因此要使-f 6生效,您的数据必须完全在同一列中。不确定你的第3行到最后一行是输错管还是输出的精确复制品,但它说明了完美切割的问题。

对于这种情况,大多数人会使用awk解决方案:

 ls -l | awk '{print $6}'

将产生您列出的输出

awk的美妙之处在于字段6由awk FS变量(字段分隔符)的值决定,默认为“多个空格值”(空格或制表符)(这不是一个确切的描述,但是很接近足以满足您的需求。)

答案 1 :(得分:3)

您无需解析lsstat -c %s *会为您提供一列尺寸。如果您还想要文件名:stat -c "%s %n" *

答案 2 :(得分:0)

使用sed:

ls -l | sed -E 's/ +/ /g'

“ +”表示任意多个空格