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

並べ替えますが、ヘッダー行を一番上に保ちますか?

最初に一連の列ヘッダーである1行を生成し、次に一連のデータを生成するプログラムから出力を取得しています。この出力のさまざまな列を切り取り、さまざまな列に従って並べ替えて表示したいと思います。ヘッダーがない場合、-kを使用して簡単に切り取りと並べ替えを行うことができます。 sortのオプション cutと一緒に またはawk 列のサブセットを表示します。ただし、この並べ替え方法では、列ヘッダーが残りの出力行と混ざり合います。ヘッダーを一番上に保つ簡単な方法はありますか?

承認された回答:

アンディのアイデアを盗み、それを機能にして使いやすくする:

# print the header (the first line of input)
# and then run the specified command on the body (the rest of the input)
# use it in a pipeline, e.g. ps | body grep somepattern
body() {
    IFS= read -r header
    printf '%s\n' "$header"
    "[email protected]"
}

今、私はできる:

$ ps -o pid,comm | body sort -k2
  PID COMMAND
24759 bash
31276 bash
31032 less
31177 less
31020 man
31167 man
...

$ ps -o pid,comm | body grep less
  PID COMMAND
31032 less
31177 less

Linux
  1. 1つのフィールドに重複する値があるCsvの連続する行を削除しますが、最後の行は保持しますか?

  2. ファイルを分割し、各部分の最初の行を保持する方法は?

  3. コマンドラインからGUI Linuxプログラムを起動する方法はありますが、コマンドラインとは別ですか?

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

  2. Linuxコマンドラインで牛を飼う

  3. Linuxコマンドラインにアクセスしてください

  1. Linuxコマンドラインに関する8つのヒント

  2. Linuxカーネル:イノベーショントップ5

  3. Linuxでのテキストファイルの少ないビューアの高度な使用