Интерпретаторы командной строки, страница 5

# ls -l |grep d

drwxrwxrwx  8 root      root           4096 Dec 16 19:22 .

drwxrwxr-x  9 root      root           4096 Nov 04 13:33 ..

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 1

drwxr-xr-x  4 root      root           4096 Nov 05 17:50 2

drwxr-xr-x  2 root      root           4096 Dec 16 19:10 3

drwxrwxrwx  2 root      root           4096 Nov 05 15:46 Qnx_rep

drwxrwxrwx  3 root      root           4096 Oct 23 17:14 lab2

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 qnx2

Соответственно, чтобы вывести список общих файлов, введём команду ls -l | grep -. Для вывода файлов, принадлежащих пользователю root, введём команду ls -l | grep root. Для вывода файлов, не  принадлежащих пользователю root воспользуемся опцией -v. В этом случае команда grep выведет все строки, не совпадающие с шаблоном: ls -l | grep -v root.

       б)

       Команда cut осуществляет выборку отдельных полей из строк файла. Используется для выборки из таблицы или полей из каждой строки файла. Разделителем между полями по  умолчанию является символ табуляции. Выведем список номеров запущенных нами процессов. для этого введём команду ps | cut -c 5-10. Эта команда выведет на экран список процессов, но от него останется только 5-10 символов в каждой строке, соответствующие PID.

# ps | cut -c 5-10

   PID

401427

163863

163864

163865

241690

315419

401438

344095

364577

364578

364579

438308

454693

577574

577575

Для определения нашего имени в системе введём команду who am i | cut -c 1-12. выведутся первые 12 символов в выводимой строке, соответствующие имени пользователя (если конечно имя пользователя не длиннее).

# who am i | cut -c 1-12

root

# who am i

root           ttyp0         10 Jan 18:11

       в)

       Команда tr позволяет преобразовывать символы. Символы, найденные в цепочке1 преобразуются       в символы из цепочки 2. для примера заменим список, выводимый командой ls на тот же список, но заглавными буквами: ls | tr ['a'-'z'] ['A'-'Z'].

# ls | tr ['a'-'z'] ['A'-'Z']

.

..

1

1.LN

2

3

BOURNE SHELL.HTM

QNX_REP

SHELL.HTML

A.OUT

AR.ZIP

EQV

LAB2

LOG.TXT

PPR

PROG.C

PROG2

PROG2.C

QNX2

       г)

       Команда sort сортирует строки, входящие во все исходные файлы и выдаёт результат на стандартный вывод. отсортируем список файлов в нашей директории в алфовитном порядке. Для этого введём команду ls -l | sort -f -k 9. Здесь -f - чтобы прописные и маленькие буквы          не различались, а -k 9 - номер сортируемого поля. Для сортировки файлов по размеру            воспользуемся командой ls -l | sort -n -k 5. Это сортировка 5го поля в списке. Флаг -n указывает, что сортируются числовые значения. Для сортировки размеров файлов в порядке убывания введём ls -l | sort -n -r -k 5. -r - сортировка в обратном порядке.

# ls -l |sort -fk 9

total 4140

drwxrwxrwx  8 root      root           4096 Dec 16 19:22 .

drwxrwxr-x  9 root      root           4096 Nov 04 13:33 ..

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 1

-rwxrwxr-x  2 root      root           4746 Nov 01 19:49 1.ln

drwxr-xr-x  4 root      root           4096 Nov 05 17:50 2

drwxr-xr-x  2 root      root           4096 Dec 16 19:10 3

-rwxrwxr-x  2 root      root           4746 Nov 01 19:49 a.out

-rw-rw-r--  1 root      root          10240 Oct 08 14:59 ar.zip

-rw-rw-r--  1 root      root         218448 Oct 08 14:59 Bourne Shell.htm

-rw-rw-r--  1 root      root             37 Nov 01 21:40 eqv

drwxrwxrwx  3 root      root           4096 Oct 23 17:14 lab2

-rw-rw-r--  1 root      root        1816686 Oct 08 14:59 log.txt

-rwxrwxr-x  1 root      root           4754 Oct 31 22:43 ppr

-rw-rw-r--  1 root      root             91 Nov 01 19:49 prog.c

-rwxrwxr-x  1 root      root           5015 Oct 31 22:53 prog2

-rw-rw-r--  1 root      root            288 Oct 08 14:59 prog2.c

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 qnx2

drwxrwxrwx  2 root      root           4096 Nov 05 15:46 Qnx_rep

-rw-rw-r--  1 root      root          18651 Oct 08 14:59 Shell.html

------------------------------------------------------------

# ls -l |sort -nk 5

total 4140

-rw-rw-r--  1 root      root             37 Nov 01 21:40 eqv

-rw-rw-r--  1 root      root             91 Nov 01 19:49 prog.c

-rw-rw-r--  1 root      root            288 Oct 08 14:59 prog2.c

drwxrwxrwx  8 root      root           4096 Dec 16 19:22 .

drwxrwxr-x  9 root      root           4096 Nov 04 13:33 ..

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 1

drwxr-xr-x  4 root      root           4096 Nov 05 17:50 2

drwxr-xr-x  2 root      root           4096 Dec 16 19:10 3

drwxrwxrwx  2 root      root           4096 Nov 05 15:46 Qnx_rep

drwxrwxrwx  3 root      root           4096 Oct 23 17:14 lab2

drwxrwxrwx  2 root      root           4096 Oct 08 15:00 qnx2

-rwxrwxr-x  2 root      root           4746 Nov 01 19:49 1.ln

-rwxrwxr-x  2 root      root           4746 Nov 01 19:49 a.out

-rwxrwxr-x  1 root      root           4754 Oct 31 22:43 ppr

-rwxrwxr-x  1 root      root           5015 Oct 31 22:53 prog2

-rw-rw-r--  1 root      root          10240 Oct 08 14:59 ar.zip

-rw-rw-r--  1 root      root          18651 Oct 08 14:59 Shell.html

-rw-rw-r--  1 root      root         218448 Oct 08 14:59 Bourne Shell.htm

-rw-rw-r--  1 root      root        1816686 Oct 08 14:59 log.txt