команда linux bash, разделенная пробелом - PullRequest
2 голосов
/ 11 ноября 2009

, поэтому я пытаюсь отображать только столбцы одновременно

первый 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 ]

9 голосов
/ 11 ноября 2009

Это должно показать второй столбец:

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

1 голос
/ 11 ноября 2009

cut рассматривает два последовательных разделителя как пустое поле между ними. Итак вторая строка:

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

имеет поля:

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

Вы можете использовать поля столбца в разрезе:

ls -l | cut -c13-14

Или вы можете использовать awk для разделения полей (unlink, cut awk будет обрабатывать последовательные разделители как один разделитель).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...