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

Это буквальное значение ^ . В этом случае он передается в egrep , который принимает расширенные регулярные выражения, своего рода способ указания шаблона для сопоставления в данной строке (что-то вроде подстановки / подстановочных знаков, но гораздо более мощного). ^ просто означает «Это должно быть в начале строки / строки». Таким образом, в этом случае он будет соответствовать каждой строке в / etc / passwd, которая начинается с содержимого переменной «username».

(Обратите внимание, здесь есть потенциальная ошибка, потому что, если есть user rich и richard, ввод имени пользователя rich также будет соответствовать richard.)

2
24.10.2016, 02:56
1 ответ
sed -rn '
/typedef struct ([[:alnum:]_]+)\s+\{/!b
s//\1/; h
:X
n 
/}\s+([[:alnum:]_]+)/{
    s//\1/
    H
    g
    s/;//g
    s/(.*)\n(.*)\n(.*)\n(.*)\n(.*)/\1 \5: \2, \3, \4/
    p;b
}
s/\s*(.+);\s*/\1/
H
bX
' file

newstruct HashNode: long id, uint32_t vtid, struct HN* next
0
27.01.2020, 22:10

Теги

Похожие вопросы