Como obtenho a primeira substring correspondida (de várias linhas)?

1

Eu tenho um arquivo em que o conteúdo parece

/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
/hello="morestuffmorestuffmorestuffmorestuffmorestuffmorestuffmorestuff
       morestuffmorestuffmorestuffmorestuffmorestuff"

Como eu conseguiria apenas

/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"

Eu canei sed para pegar o /hello com cut delimitado por '/', mas não consigo descobrir como obter apenas a primeira substring.

comando eu usei

sed -n '/hello/, /\"/ p' file.txt | cut -d "/" -f 2

Por algum motivo, ele divide cada substr em dois campos; a primeira linha e depois o resto das linhas.

    
por SemicolonExpected 06.02.2018 / 07:06

3 respostas

1

Use isso:

sed -n '/hello/,/"$/p;/"$/q' infile

ou esta igualdade:

sed '/hello/,/"$/!d;/"$/q' infile

Ou com awk também (assumindo que a primeira linha sempre tenha hello ):

awk '/hello/ || 1;/"$/{exit}' infile

senão use um sinalizador para gerenciá-lo.

awk '/hello/{prnt=1};prnt;/"$/{exit}' infile
    
por 06.02.2018 / 07:31
0

Eu fiz abaixo do comando sed

sed '0,/hello.*/!s///' inputfile| sed '/^\/$/,$d'

saída

/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
    
por 06.02.2018 / 19:02
0

Outro método

sed -n '/\/hello/,/"$/p;/"$/q' iputfile

saída

/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
       somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
    
por 06.02.2018 / 19:14