Это старая версия (1.6) ОболочкаShell.

Содержание

Оболочка shell

В этом разделе будет собраны и разбиты на разделы практические приёмы использования оболочки (shell). Так как сама по себе оболочка является всего лишь тонким «клеем» для объединения программ и файлов в новые инструменты (через конвеер и перенаправление ввода-вывода), в этот раздел будут помещены ссылки на другие вики-страницы, где описаны приёмы работы с прочими классическими утилитами Unix.

Конвеер для работы с файлами

 $ find /etc -maxdepth 1 -type f | sort | (echo cat ; cat ) | paste -s -d ' ' | sh >/tmp/all

Я бы отдал предпочтение tr вместо paste, вот так:

 $ find /etc -maxdepth 1 -type f | sort | (echo cat; cat ) | tr '\n' ' ' | sh >/tmp/all

Здесь есть ещё одна потенциальная проблема, она связана с тем, что в именах файлов в Unix могут встречаться и специальные символы, в т. ч. символ новой строки (NL). Если используются утилиты GNU, то можно воспользоваться расширениями таким образом:

 $ find /etc -maxdepth 1 -type f -print0 | sort -z | xargs -0 cat >/tmp/all

В таком случае find выводит имена файлов разделяя их не символом новой строки, а нулевым байтом (NUL). Тогда все утилиты в конвеере должны принять это соглашение; это умеет делать и GNU sort и GNU xargs.

СиткаревГригорий


Фильтр sed

 $ echo "abcabc" | sed 's/\(.*\)\(\1\)/\1/'
 
 $ sed -n 'H;${x;s/\n/ /g;p}'
 $ sed -n '1h;1!H;${x;s/\n/ /g;p}'