FILE1を生成せずにリダイレクトやパイプを介してこれを行う簡単な方法はありますか?最初の行と最後の行に触れることなく、process1の出力本文にprocess2を適用したいと思います。
process1 >FILE1
head -n 3 FILE1
tail -n +4 FILE1|head -n -4|process2 # producing output
tail -n 4 FILE1
rm -f FILE1
答え1
パイプラインで処理できると思います。最初の行と最後の行、たとえば3行を除いて、process1のすべての行を処理します。
process1 | tail -n +4 | head -n -3 | process2
答え2
これが何を達成するのかはわかりませんが、中間ファイルを使用せずに実行している作業を正確に行うソリューションは次のとおりです。
#!/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