私は次のような入力を持っています
a b danny
c d joe
1 4 danny
d 5 dana
e f joe
t 4 dana
最後の列に基づいてソートして、各行セットにヘッダーとして追加したいと思います。 Linuxでは、次のように出力されます(グループの順序は重要ではありません)。
dana
d 5 dana
t 4 dana
danny
a b danny
1 4 danny
joe
c d joe
e f joe
(e)grep / sed / awkや他のコマンドラインツールを使用して実行できますか?
ベストアンサー1
GNU coreutilssort
と以下を使用してくださいawk
。
$ sort -sk3 file | awk '$3!=group{ group=$3; print group }1'
dana
d 5 dana
t 4 dana
danny
a b danny
1 4 danny
joe
c d joe
e f joe
-k3
stable( ) sorting を使用して 3 番目のフィールド ( ) で入力ファイルをソートし、出力を 3 番目のフィールドにパイプし、-s
変更awk
がない場合は、3 番目のフィールドを独自の行に印刷します。次に、現在のレコード(1
)を印刷します。