br comando para imprimir todas as linhas começando e terminando com palavras específicas presentes em um arquivo

1

Suponha que eu tenha um arquivo

Arquivo1 consiste em duas palavras

Arquivo1: EQUIPE DE PAPEL

Agora eu preciso imprimir todas as linhas de um arquivo M a partir da palavra PAPER end to word Team

O comando sed para imprimir entre duas palavras é sed -n "/PAPER/,/TEAM/p" file2

Mas o problema é que agora estou dando palavras diretamente, mas ele deve verificar as palavras toda vez em file1 e grep todas as linhas, começando de uma palavra para outra em file2 .

    
por yisha 24.11.2014 / 11:52

1 resposta

3

while read -r first second ; do 
    sed -n "/${first//\//\\/}/,/${second//\//\\/}/p" file2 ; 
done < file1

observe que ${first//\//\\/} é usado para substituir o possível símbolo / para escapar da seqüência \/ caso contrário, a construção pode ser quebrada.

se você tiver certeza absoluta de que não tem o símbolo / no arquivo1, poderá usar apenas $first e $second .

    
por 24.11.2014 / 12:10