Imprime um arquivo de texto de um número de linha para outro depois de procurar pelas linhas

5

Eu quero imprimir um arquivo de texto de X número da linha para Y número da linha

O valor de X & Y é determinado procurando por uma linha específica no arquivo de texto (neste caso, o número da página)

Eu procuro a linha pelo seguinte comando

echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: ; echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:

para o qual recebo uma saída

67

128

Eu quero alimentar esta saída para o comando abaixo

sed -n 'X,Yp' FileName.txt

Mas eu os recebo como duas linhas diferentes, como posso alimentá-lo com o comando sed

Depois de querer alimentar o resultado do comando acima para o comando lp , algo assim ...

sed -n 'X,Yp' FileName.txt | lp -dmyprinter

Isso pode ser feito sem criar um arquivo?

    
por S.M.09 13.08.2013 / 09:12

2 respostas

5

Não é necessário que as duas fases descubram as linhas de antemão. Basta fazer a coisa toda com sed :

sed '/Page # 2/,/Page # 3/!d' < FileName.txt
    
por 13.08.2013 / 10:53
0

Tente manter os valores com variáveis, algo assim:

FROM_LINE='echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: '
TO_LINE='echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:'

e, em seguida, use essas variáveis com sed:

sed -en "${FROM_LINE},${TO_LINE}p" FILE
    
por 13.08.2013 / 10:20

Tags