1

Как в теме. Допустим, у меня есть файл, который содержит:

* ааа азбука

DEF 55

* CCC ABC

RET 33

и я бы знал, можно ли сделать заявление, если $ 1 == "* aaa", а затем вывести $ 4 со следующей строки. Я знаю, что одним из решений может быть сохранение файла с таким выводом:

* AAA ABCDEF 55

* CCC ABCRET 33

используя "*" в качестве разделителя строк, но я бы хотел этого избежать.

С уважением, Лукас

1 ответ1

1

Используйте переменную (названную в этом примере primed ), которая устанавливается, если найдено совпадение. next оператор читает следующую строку, которая затем печатается, если задано primed.

awk '{
if (primed) print $4; 
if ($1 == "*aaa") { primed=1; next } primed=0; }' file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .