はい、これはコマンドから出力の最初の行を取得する 1 つの方法です。
コマンドが同じ方法でキャプチャしたいものを標準エラーに出力する場合、コマンドの標準エラーを標準出力ストリームにリダイレクトする必要があります:
utility 2>&1 | head -n 1
sed 1q
など、最初の行をキャプチャする方法は他にもたくさんあります。 (最初の行で終了), sed -n 1p
(最初の行のみを表示しますが、すべてを読み取ります)、awk 'FNR == 1'
(最初の行だけを印刷しますが、もう一度すべてを読みます) など
私は以下を使用します:
awk 'FNR <= 1' file_*.txt
@Kusalananda が指摘しているように、コマンド ラインの最初の行をキャプチャする方法はたくさんありますが、head -n 1
を使用します。 ワイルドカードを使用すると、追加情報が出力されるため、最適なオプションではない可能性があります。 'FNR == i'
の変更 'FNR <= i'
まで 最初の i 行を取得できます。
たとえば、file_1.txt という名前の n 個のファイルがある場合、... file_n.txt:
awk 'FNR <= 1' file_*.txt
hello
...
bye
しかし head
では ワイルドカードはファイルの名前を出力します:
head -1 file_*.txt
==> file_1.csv <==
hello
...
==> file_n.csv <==
bye