シェルスクリプトでコマンドの結果の先頭行と末尾行を取得する
コマンドの結果の先頭行を取得する
headコマンドを使用して、コマンドの結果の先頭行を取得することができる。
seq 1 10 | head -n 1
コマンドの結果の末尾行を取得する
tailコマンドを使用して、コマンドの結果の末尾行を取得することができる。
seq 1 10 | tail -n 1
コマンドの結果の先頭行と末尾行を同時に取得する
awkコマンドを使用して、コマンドの結果の先頭行と末尾行を同時に取得することもできる。
seq 1 10 | awk 'NR==1 {first=$0} {last=$0} END {print "First line: " first; print "Last line: " last}'
sedコマンドを使用して、コマンドの結果の先頭行と末尾行を同時に取得することもできる。
seq 1 10 | sed -n '1s/^/First line: /p; $s/^/Last line: /p'
readとtailを組み合わせて、コマンドの結果の先頭行と末尾行を同時に取得することもできる。
seq 1 10 | { read first; last=$(tail -n 1); echo "First line: $first"; echo "Last line: $last"; }
読み込みバッファに注意する
headとtailを組み合わせた場合はheadコマンドが全ての入力を読み込みバッファに保持してしまうため末尾行が取得できない。
seq 1 10 | head -n 1 | tail -n 1