UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
sed 3q
Хотя
3q
ed
sed
От вас может потребоваться другая работа с данными, например вставка пробелов. Один из способов заключается в том, чтобы выходной поток
sed
ind
sed
sed
sed 'S/^/→/
3q'
Обратите внимание, где находятся кавычки и символ перевода строки: команды должны быть на отдельных строках, но редактор игнорирует пробелы и символы табуляции в начале строки.
Представляется естественным с помощью рассмотренных выше приемов составить программу
head
sed 3q
10q
ind
sed
ind
/bin
Можно помещать команды редактора
sed
$ sed -f командный_файл
Вы можете обращаться к строкам, используя не только их номера. Так, команда
$ sed '/шаблон/q'
выдает из входного потока все строки до первой включительно, которые соответствуют шаблону, а команда
$ sed '/шаблон/d'
удаляет каждую строку, содержащую шаблон; удаление происходит до автоматического вывода строк, поэтому удаленные строки не учитываются.
Хотя автоматический вывод обычно удобен, иногда он мешает. Его можно отключить с помощью флага
-n
$ sed -n '/шаблон/p'
эквивалентен команде
grep
!
$ sed -n '/шаблон/!p'
эквивалентно команде
grep -v
sed '/шаблон/d'
Для чего нужны две команды
sed
grep
grep
sed
grep
sed
grep
sed
sed
-b
gres
sed
Используя запись, такую же, как в редакторе
ed
sed
$ sed '/$/
> /'
Здесь добавляется символ перевода строки к каждой строке, и таким образом пустые строки вставляются во входной поток, а команда
$ sed 's/[→][→]*/
>/g'
заменяет каждую последовательность пробелов или символов табуляции на символ перевода строки, т. е. разбивает входной поток на строки из одного слова. (Регулярное выражение
'[→]'
'[→]*'
Можно также использовать пару регулярных выражений или номеров строк для задания диапазона строк, к которому будет применяться произвольная команда.
$ sed -n '20,30p'
$ sed '1,10d'
$ sed '1,/^$/cd'
$ sed -n '/^$/,/^end/p'
строки, начинающейся с end
$ sed '$d'
Строки нумеруются с начала входного потока; обнуление не происходит с началом нового файла.
У команды
sed
ed
+
-
$ sed '$-1d'
Unrecognized command: $-1d
$
Если строка считана, предыдущая исчезла навсегда: нет способа специфицировать предыдущую строку, а именно это требуется в команде. В принципе такой способ есть в команде
sed
hold
$ sed '/что-то/+1d'
Редактор
sed
$ sed -n '/шабл/w файл1
> /шабл/!w файл2' имена_файлов...