GNU/Linux >> Linux の 問題 >  >> Linux

シェル コマンドの出力の最初の行を取得する

はい、これはコマンドから出力の最初の行を取得する 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

Linux
  1. シェル スクリプトのコマンド ライン パラメータ

  2. シェル スクリプトの各行から最初の 5 文字を取得する

  3. コマンド出力を変数に保存するときに改行を保持する方法は?

  1. コマンド出力に改行を追加する

  2. コマンド ライン:出力から部分文字列を抽出する

  3. 成功した場合にのみシェル コマンドの出力を非表示にしますか?

  1. コマンドラインでsortを使用してソートする

  2. Linuxシェルのコマンドラインエイリアス

  3. コマンドの出力をシェル変数に保存しますか?