Я хочу использовать sed или awk для добавления нескольких строк, соответствующих критериям, после того, как найдена строка, содержащая шаблон - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть такой текст:

Sample: 1
Description: THIS SAMPLE CONTAINS DATA FROM WITH THE FOLLOWING CRITERIA
BLAH BLAH BLAH
BLAH BLAH BLAH.   
random label:

как бы я конкатенировал определенные строки в файле, чтобы он выглядел так:

Sample: 1
Description: THIS SAMPLE CONTAINS DATA MEETING THE FOLLOWING CRITERIA BLAH BLAH BLAH BLAH BLAH.
random label:

Единственная уверенность в том, что каждая строкасразу после "Description", которое начинается с и содержит все заглавные буквы, будет объединено в строку, содержащую "Description".

Произвольная метка, означает, что метка будет одной из 60 меток.

1 Ответ

0 голосов
/ 26 сентября 2019

Это может работать для вас (GNU sed):

sed '/^Description/{:a;N;/\n[[:upper:]]/s/\n/ /;ta;P;D}' file

Соберите строки, начинающиеся с заглавной буквы, начиная с начала строки Description

Если вы хотите, чтобы не были только строкисодержащие строчные буквы, используйте:

sed '/^Description/{:a;N;/\n.*[[:lower:]]/!s/\n/ /;ta;P;D}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...