Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Вот строчка кода из лабораторной по линуксу :) точнее это вся лабораторная работа :)
Объясните пожалуста, что значит тут каждое слово :) В особенности зачем нужен значок доллора перед cat и что значат одинарные кавычки :) и вертикальные линии :) и что это такое wc -w :) Ну в общем все, что можно сказать об этой строчке :) Заранее спасибо :)

ls|grep $`cat $1`|wc –w



Партнер
 

Member
Статус: Не в сети
Регистрация: 31.05.2004
ls - просмотр содержимого текущего каталога
| - вертикальная черта - означает разделитель, т.е. либо ls либо grep $`cat $1` либо wc-w
$ - объявление переменной по их поводу можешь найти инфу здесь: http://www.unix.org.ua/shell/gl4.htm
wc это подсчет, параметр -w означает что будет считатся количество слов. инфа по нему http://www.citforum.ru/operating_system ... 10_5.shtml

help по grep
Код:
Использование: grep [OPTION]... PATTERN [FILE] ...
Ищет PATTERN в каждом FILE или стандартном вводе.
Пример: grep -i 'hello world' menu.h main.c

Выбор типа регулярного выражения и его интерпретация:
  -E, --extended-regexp     PATTERN - расширенное регулярное выражение
  -F, --fixed-regexp        PATTERN фиксированная строчка, разделенная
                              концами строк
  -G, --basic-regexp        PATTERN простой регулярное выражение
  -P, --perl-regexp         PATTERN регулярное выражения языка Perl
Ищет PATTERN в каждом FILE'е или стандартном вводе.

Выбор типа регулярного выражения и интерпретации:
  -e, --regexp=PATTERN      использовать PATTERN как регулярное выражение
  -f, --file=FILE           брать PATTERN из FILE'а
  -i, --ignore-case         игнорировать раличие регистров
  -w, --word-regexp         PATTERN должен подходить ко всему слову
  -x, --line-regexp         PATTERN должен подходить ко всей строке
  -z, --null-data           строчки оканчиваются на байт 0, а не на конец
                             строки

Разноообразные:
  -s, --no-messages         подавлять сообщения об ошибках
  -v, --revert-match        выбирать не подходящие строки
  -V, --version             напечатать информацию о версии и выйти
      --help                показать помощь и выйти
      --mmap                использовать mmap ввод по возможности

Управление выводом:
  -m, --max-count=NUM       остановиться после NUM совпадений
  -b, --byte-offset         печатать вместе с выходными строчками смещение в
                            байтах
  -n, --line-number         печатать номер строки вместе с выходными строчками
      --line-buffered       сбрасывать буфера каждую строчку
  -H, --with-filename       печатать имя файла для каждого совпадения
  -h, --no-filename         подавить вывод имени файла на выходе
      --label=LABEL         выводить LABEL вместо имени файла
  -q, --quiet, --silent     подавить весь обычный вывод
      --binary-files=TYPE   считать что бинарный файл типа:
                            TYPE - 'binary', 'text', или 'without-match'.
  -a, --text                не подавлять бинарный вывод
  -I                        то же, что и --binary-files=without-match
  -d, --directories=ACTION  как обрабатывать каталоги
                            ACTION может быть 'read' (читать),
                            'recurse' (рекурсивно), или 'skip' (пропускать).
  -D, --devices=ACTION      как обрабатывать устройства, каналы и сетевые каналы
                            ACTION может быть 'read' или 'skip'
  -R, -r, --recursive        аналогично --directories=recurse.
      --include=PATTERN     обработать файлы, удовлетворяющие PATTERN
      --exclude=PATTERN     пропустить файлы, удовлетворяющие PATTERN.
      --exclude-from=FILE   пропустить файлы, удовлетворяющиеPATTERN в FILE.
  -L, --files-without-match печатать только имена файлов без совпадений
  -l, --files-with-matches  печатать только имена файлов с совпадениями
  -c, --count               печатать только количество совпадающих строк на файл
  -Z, --null                печатать байт 0 после имени файла

Управление контекстом:
  -B, --before-context=NUM  печатать NUM строк предшествующего контекста
  -A, --after-context=NUM   печатать NUM строк последующего контекста
  -C, --context[=NUM]       печатать NUM строк контекста,
                            если не перекрывается -A или -B
      --color[=WHEN],
      --colour[=WHEN]       использовать маркеры для различия совпадающих строк
                            WHEN может быть `always' (всегда), `never' (никогда)                                                                            или `auto' (автоматически).
      --color, --colour     использовать маркеры для различия совпадающих строк
  -NUM                      то же, что и --context=NUM
  -U, --binary              не удалять сиволы CR в конце строки (MSDOS)
  -u, --unix-byte-offsets   выдавать смещение, как-будто нет CR-ов (MSDOS)

Если не указано -[GEF], тогда `egrep' предполагает -E, `fgrep' -F, иначе -G.
Когда нет FILE'а, или когда FILE это -, читает стандартный ввод. Если задано
меньше, чем два файла, предполагает -h. Выходит с 0 если найдены совпадения,
с 1, если нет. Выходит с 2, если есть синтаксические или системные ошибки.

Об ошибках сообщайте <bug-grep@gnu.org>.




help по cat
Код:
Использование: cat [КЛЮЧ] [ФАЙЛ]...
Сцепляет ФАЙЛ(ы) или стандартный ввод на стандартный вывод.

  -A, --show-all           синоним -vET
  -b, --number-nonblank    нумеровать непустые строки при выводе
  -e                       синоним -vE
  -E, --show-ends          показывать $ в конце каждой строки
  -n, --number             нумеровать все строки при выводе
  -s, --squeeze-blank      выводить не более одной пустой строки
  -t                       синоним -vT
  -T, --show-tabs          показывать знаки табуляции как ^I
  -u                       (игнорируется)
  -v, --show-nonprinting   использовать запись с ^ и M-, за исключением знаков
                           перевода строки и табуляции
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти


Если ФАЙЛ не задан или задан как -, читает стандартный ввод.

Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.


 

Спасибо большое! :)


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Ребята, вы чего? Одному полагается ЖК по 3.11, другому — по 3.1 ...


ls | grep $`cat $1` | wc –w

ls — без параметров действительно показывает список файлов в текущей директории.

| — символ конвеера (pipe), передаёт стандартный вывод команды слева от себя на стандартный вход команды справа от себя. В данном случае список файлов поступает на вход команды grep.

grep — осуществляет поиск заданного шаблона в стандартном вводе или в заданном файле. В данном случае будет произведен поиск того, что получится из «$`cat $1`» в тексте списка файлов, переданном по конвееру из первой команды.

Первый $ — будет расценен grep'ом просто как дословный символ $ в составе шаблона.

апострофы (`) — выполняют команду, заключенную в них, и вывод этой команды помещается на их место.

cat — помещает на стандартный вывод содержимое переданных файлов, или стандартный ввод

$1 — значение первого параметра, переданного скрипту. Если нашу команду просто набирать в консоли, то $1 будет пустым!

wc -w — да, подсчет числа слов в стандартном вводе, а на стандартный ввод у нас по конвееру передан вывод команды grep.


Итого, что происходит, если мы наберем команду в консоли:

выполняется ls, список файлов передается по конвееру дальше.
выполняется cat $1. $1 в случае выполнения из консоли пуста, и выполняется просто cat, т.е. вывод стандартного ввода. Стандартный ввод на данном этапе — список файлов.. итого получаем, что нам надо выполнить
«grep $файл1
файл2
файл3
и т. д.»

выполняется
«grep $файл1
файл2
файл3
и т.д.». Такая команда будет искать шаблон «$файл1» в содержимом всех остальных файлов. Если такая строчка (строчки) будет найдена, она будет помещена на стандартный вывод.

Все это передается дальше по конвееру на «wc -w». Если поиск дал какие-то результаты, то в них будет подсчитано кол-во слов и выведено на стандартный вывод. Конвеер закончился, стандартный вывод — консоль.


Если же нашу команду поместить в скрипт (например, «test.sh») и запустить этот скрипт из консоли с параметром (например, «./test.sh somefile», то $1 в команде заменится на значение этого параметра. Тогда cat выдаст содержимое файла somefile, и все преобразится соответственно.
Добавлено спустя 1 минуту
Genius Exoticus ты сам-то хоть свои ссылки читал?

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan