Вот строчка кода из лабораторной по линуксу точнее это вся лабораторная работа Объясните пожалуста, что значит тут каждое слово В особенности зачем нужен значок доллора перед cat и что значат одинарные кавычки и вертикальные линии и что это такое wc -w Ну в общем все, что можно сказать об этой строчке Заранее спасибо
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 ты сам-то хоть свои ссылки читал?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения