AWK може це зробити за допомогою діапазонів шаблонів, що дозволяє використовувати будь-який регулярний вираз:
echoer | awk '/pattern/,0'
буде друкувати echoer
вихід, починаючи з відповідності першого рядка pattern
.
AWK заснований на шаблоні і зазвичай використовується з типом підходу "якщо ця модель відповідає, зробіть це". "Цей візерунок" може представляти собою діапазон шаблонів, визначений як "коли цей зразок збігається, починайте це робити, поки цей інший візерунок не збігається"; це визначається, записавши два шаблони, розділені комою, як вище. Шаблони можуть бути текстовими збігами, як у /pattern/
, де поточний рядок перевіряється на зразок, інтерпретується як регулярний вираз; вони також можуть бути загальними виразами, оціненими для кожного рядка та вважатись відповідними, якщо їх результат не нульовий або не порожній.
У AWK типовою дією є друк поточного рядка.
Збираючи все це разом, awk '/pattern/,0'
шукає відповідність рядків pattern
, і як тільки він знайде його, застосовує дію за замовчуванням до всіх рядків, поки 0
умова не збігається (не дорівнює нулю). awk '/pattern/,""'
працював би теж.
Посібник Gawk детальніше описується.