1行あたりの単語数に基づいて行を並べ替える

1行あたりの単語数に基づいて行を並べ替える

与えられた入力:

hello: world foo bar baz
bar:
baz: bin boop bop fiz bang beep
bap: bim bam bop
boatkeeper: poughkeepsie

次のように、ほとんどの単語を一番上、少なくとも一番最後に配置したいと思います。

baz: bin boop bop fiz bang beep
hello: world foo bar baz
bap: bim bam bop
boatkeeper: poughkeepsie
bar:

sortこれを行うには、他のツールをどのように使用する必要がありますか?

ベストアンサー1

次のことができます。

awk '{print NF,$0}' file | sort -nr | cut -d' ' -f 2-

awk各行の前にフィールド数を付けます。次に、sort対応する数字を押して で削除しますcut

おすすめ記事