![複数の列に基づいてソートする方法は? [コピー]](https://linux33.com/image/32877/%E8%A4%87%E6%95%B0%E3%81%AE%E5%88%97%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%82%BD%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
タブ区切りのファイルがありますが、9列、14列、16列に基づいてソートしたいと思います。つまり、9列に一致するすべての行は14列に基づいてソートする必要があり、そのうち9列に一致する行も14列に基づいてソートする必要があるということです。 14列を16列に並べる必要があることに同意しました。 (すべての列は昇順でソートする必要がありますが、最初の2つの列はアルファベット順、残りの列は数字でソートする必要があります。)
gnu
さまざまな形式の()を試しましたが、sort
目的のソート順序を取得できませんでした。マニュアルページは役に立ちません。上記のソートを達成するための正しい注文を教えてくれる人はいますか?
答え1
sort -t '\t' -k9,9 -k14,14 -k16,16n
(ソートキーの開始位置を指定する必要があることを覚えておいてください。そして彼らの終わり-k9
、そうでなければ(代わりに使用すると、行の-k9,9
末尾で終わるからです)。