Como usar um arquivo como entrada para programar a partir da linha específica no comando?

0

Para usar um arquivo como entrada para o programa, o operador < pode ser usado.

Por exemplo,

xmacroplay "$DISPLAY" < input.txt

No entanto, existe um comando para especificar se eu não quero usar o arquivo inteiro, mas apenas algumas linhas como entrada?

Alguns gostam,

xmacroplay "$DISPLAY" < input.txt --starting_line=100 --ending_line=120

(Isso certamente não vai funcionar, só quero saber se existem opções assim)

    
por cytsunny 23.10.2016 / 17:29

1 resposta

1

Use sed ou outra ferramenta para filtrar a linha específica e canalizá-la para o comando. Por exemplo, o seguinte enviará apenas as linhas 10 e 13 do arquivo para xmacroplay :

sed -n '10p; 13p' input.txt | xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120

Ou em awk :

awk 'NR == 10 || NR == 13' input.txt | xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120

Se, por algum motivo, você não puder usar um canal, use a substituição de processo:

xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120 < <(sed -n '10p; 13p' input.txt)
    
por muru 23.10.2016 / 17:32