О редакторе 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...

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

Архив записей в блогах:
Про дуб Тургенева помните писала? Ну, что он всё, типа самовыпилился?) Ураган был, и не уберегли победителя Всероссийской олимпиады среди деревов, не уберегли кормильца ски... Так вот! Предприимчивые бабки- гувернантки смотрительницы плесневой* экспозиции музея чего удумали, бля, как ...
Максим Калашников Поглядите это видео с 6 минуты 36-й секунды. Трамп говорит о производстве и возврате промышленности в свою страну! Он говорит о трубах и производстве, а не о стадионах к какой-нибудь олимпийской мундиали, не витийствует о "духоскрепах" и не сожалеет о "свободе ...
Ещё к вчерашней теме. Похоже, не все понимают: в нашем законодательстве в случае неспособности пациента принять медицинское решение, его принимает лечащий врач (врачебный консилиум). Родственники права голоса в принятии решения не имеют. Исключение - законные опекуны. Опекунство ...
Наткнулся на прекрасное в мордокниге. Не могу не поделиться, прёт просто. Вернулся с Майдана. Надо поделиться. Во-первых, это был самый душевный военный парад за всю историю страны - с настоящими, а не бутафорными героями на площади. Очень много людей - флаги, вышиванки, гербы. Длинные ...
Меня в последние дни упрекают, что я не одобряю народные сходы ("майданы"), право народа менять власть в обход традиционных процедур, право народа на ...