О редакторе sed

топ 100 блогов hardsign19.12.2021

Отредактировать файл – что может быть проще? Открыл в любом текстовом редакторе – и гоняй курсор по экрану туда-сюда, насколько позволит монитор. Но... так было не всегда.

Помню, в школе мы работали на ЭВМ СМ-4, у которой были разные терминалы – польские, кубинские (!) и советские. Так вот, для советского терминала редактор был строчный. То есть оператор мог видеть и редактировать только одну строку, а остальные должен был держать в уме. Очень удобно, да.

С тех пор много воды утекло, но строчные редакторы и не думают умирать. Среди набора утилит GNU, вдохновлённого великим Ричардом Столлманом, есть редактор sed, который работает с единственной строкой. Хорош он тем, что файл редактирует робот, набор инструкций которого чем-то напоминает черепашку из детского языка Logo.

До сих пор моё знакомство с этим инструментом было скорее теоретическим, но недавно появилась у меня странная задача – посчитать количество функций, объявленных в заголовочном файле языка C. И вот тут...

Впрочем, дальше уже идёт тарабарщина, поэтому прячу её под кат.

cat db2api.h | \
sed -r 's#\/\*.*\*\/##g' | \
sed -r 's#\/\*.*$##;T;: nl;N;s#^.*\*\/##;t;s#^.*$##;b nl' | \
sed -r 's/^#define//;T;: cont;s/.*\\\s*$//;T eof;n;b cont;: eof;d' | \
grep -vE '^#' | \
grep -vE '^\s*$'

Первая команда удаляет однострочные комментарии. Вторая команда удаляет многострочные комментарии. Третья команда расправляется с директивами препроцессора #define, включая многострочные. И наконец два финальных grep’а расправляются с остальными директивами препроцессора и пустыми строками.

Наверно, можно было копать и дальше, но оказалось, что теперь достаточно посчитать количество открывающих круглых скобок. Их оказалось 486...

Оставить комментарий

Архив записей в блогах:
Человечество вперед двигают изобретатели и учёные. Не труд сделал из обезьяны человека - а желание этот труд облегчить. А началось всё с таинственного чёрного монолита с примитивных орудий труда, которыми умеют пользоваться даже обезьяны. Обрабатывать камни и палки для того, чтобы ...
Че, жыжыстики мои, хто соскучился по жыробабе купчинской? Зашла тут после культурного джаза в Теремок на Чернышевского: Если у вас есть кофе, торт и балалайка - поговорим о сотрудничестве, хыхы ...
Добрый день! Очень прошу поделиться опытом как у вас проходил скрининг на 4 день после рождения, при условиях пкс (тут всё понятно, что я попадаю на него в рд) в Москве, а проживании в МО без регистрации. Что дальше происходит с результатами?? Откуда их узнать? В поликлинике по месту ...
Среди упаковочных материалов, которые предлагают наши производители, неизменным спросом пользуется стретч пленка различных марок. Она подразделяется на расходный материал для ручного и машинного (с помощью паллетайзера) обертывания. Соответственно и маркируются, как тип «А» и «Б». ...
Совершенно дивный и очень редкий сервиз фирмы Ильменау (Jlmenau). Форма под названием «Daphne». Германия, 60-70 гг. прошлого века. Изящный кофейник. (лучи солнца ...