linux bash命令由空格分隔

时间:2009-11-11 06:21:34

标签: linux bash

所以我试图一次只显示列

首先ls -l给我这个

drwxr-xr-x 11 stuff stuff      4096 2009-08-22 06:45 lyx-1.6.4
-rw-r--r--  1 stuff stuff  14403778 2009-10-26 02:37 lyx.tar.gz

我正在使用它:

ls -l |cut -d " " -f 1 

得到这个

drwxr-xr-x 
-rw-r--r-- 

它显示我的第一列就好了。然后我想看看第二栏

ls -l |cut -d " " -f 2

我只能得到这个

11

我不应该

11
1


它为什么这样做?

如果我尝试

   ls -l |cut -d " " -f 2-3

我得到了

11 stuff

有必要更简单地显示列吗?

2 个答案:

答案 0 :(得分:9)

这应显示第二栏:

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

答案 1 :(得分:1)

cut认为两个连续的分隔符之间有一个空字段。所以第二行:

-rw-r--r--  1 stuff stuff

有字段:

1: -rw-r--r--
2: --empty field--
3: 1
etc.

您可以在剪切中使用使用列字段:

ls -l | cut -c13-14

或者您可以使用awk来分隔字段(取消链接,剪切awk会将顺序分隔符视为单个分隔符)。