Acho que você pode simplesmente canalizá-los: para processar todas as linhas do process1, exceto o primeiro e o último, digamos, 3 linhas:
process1 | tail -n +4 | head -n -3 | process2
Existe uma maneira simples de fazer isso com redirecionamentos ou canais sem criar FILE1? Eu quero aplicar o process2 ao corpo da saída do process1, sem tocar na primeira e última linha.
process1 >FILE1
head -n 3 FILE1
tail -n +4 FILE1|head -n -4|process2 # producing output
tail -n 4 FILE1
rm -f FILE1
Acho que você pode simplesmente canalizá-los: para processar todas as linhas do process1, exceto o primeiro e o último, digamos, 3 linhas:
process1 | tail -n +4 | head -n -3 | process2
Não tenho certeza do que isso deve alcançar, mas aqui está uma solução que faz exatamente o que você está fazendo sem usar um arquivo intermediário:
#!/bin/bash
# prevent LF from being removed
export IFS=' '
output='process1'
echo $output | head -n 3
echo $output | tail -n +4 | head -n -4 | process2 # producing output
echo $output | tail -n 4
Tags bash pipe io-redirection