Искусство программирования на языке сценариев командной оболочки




Программирование на языке сценариев командной оболочки - стр. 333


/p>

sed -n '/xzy/p' $filename # Ключ -n заставляет sed вывести только те строки, которые совпадают с указанным шаблоном. # В противном случае (без ключа -n), будут выведены все строки. # Здесь, ключ -e не является обязательным, поскольку здесь стоит единственная команда.

Таблица B-2. Примеры операций в sed

Операция

Описание

8d Удалить 8-ю строку.
/^$/d Удалить все пустые строки.
1,/^$/d Удалить все строки до первой пустой строки, включительно.
/Jones/p Вывести строки, содержащие "Jones" (с ключом -n).
s/Windows/Linux/ В каждой строке, заменить первое встретившееся слово "Windows" на слово "Linux".
s/BSOD/stability/g В каждой строке, заменить все встретившиеся слова "BSOD" на "stability".
s/ *$// Удалить все пробелы в конце каждой строки.
s/00*/0/g Заменить все последовательности ведущих нулей одним символом "0".
/GUI/d Удалить все строки, содержащие "GUI".
s/GUI//g Удалить все найденные "GUI", оставляя остальную часть строки без изменений.

Замена строки пустой строкой, эквивалентна удалению части строки, совпадающей с шаблоном. Остальная часть строки остается без изменений. Например, s/GUI//, изменит следующую строку

The most important parts of any application are its GUI and sound effects

на

The most important parts of any application are its and sound effects

Символ обратного слэша представляет символ перевода строки, как символ замены. В этом случае, замещающее выражение продолжается на следующей строке.

s/^ */\ /g

Эта инструкция заменит начальные пробелы в строке на символ перевода строки. Ожидаемый результат -- замена отступов в начале параграфа пустыми строками.

Указание диапазона строк, предшествующее одной, или более, инструкции может потребовать заключения инструкций в фигурные скобки, с соответствующими символами перевода строки.

/[0-9A-Za-z]/,/^$/{ /^$/d }

В этом случае будут удалены только первые из нескольких, идущих подряд, пустых строк.


Содержание  Назад  Вперед