VIM: функция, проверяющая, запущена ли внешняя программа

awk подход:

Допустим, у нас есть следующий входной файл file.txt(учитывая, что каждая строка содержит Line: в качестве первого поля) :

Line1: a
Line2: b
Line3: c
Line4: Name: 123
Line5:  xyz
Line6: Name: 456
Line7:  abc
Line8: Name: 111
Line9: www
Line10: Num: 222
Line11:  abc
Line12: Name: 333
Line13:  ccc

awk '{ if ($2 == "Name:") { 
           if ((getline l) > 0){ 
               if (l ~ /^\S+  \S+/) { next } else { print $0 RS l }               
           }
       } else { print } 
}' file.txt

Вывод:

Line1: a
Line2: b
Line3: c
Line8: Name: 111
Line9: www
Line10: Num: 222
Line11:  abc

'getline var' - считывает следующую запись из ввода awk в переменную var

Команда getline возвращает 1, если находит запись и 0, если она встречает конец файла.

1
23.06.2016, 03:21
0 ответов

Теги

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