フラットファイルを3番目の列で並べ替える必要があります。最初の列はそのままにします[最初の列は既に並べ替えられています](Linuxの場合)。 (2列目は変更される場合があります)
I/pファイルの例:-
b:di:wave
b:di12:red
b:di12:wave
b:di06:pir
次のようになります:-
b:di06:pir
b:di12:red
b:di12:wave
bast:di:wave
いくつかの並べ替えオプションを試しましたが、2番目の列でしか並べ替えることができず、3番目の列で並べ替えることはできませんでした。
誰か助けてもらえますか?
これを試して:
sort -t: -k1,1 -k3 data.txt
与える:
bast:disp-san-d5-06:piranha
bast:display-san-12:redbird
bast:display-san-07:waverider
bast:display-san-12:waverider
これにより、1番目のフィールドが主キーとして、3番目のフィールドが2次キーとしてソートされ、行が:
によってフィールドに分割されます。
詳細:
data.txt
には、投稿からの4行が含まれています。
ソートキーとして複数のフィールドを指定できます。 マニュアルページ を参照してください。
-k1,1
は、最初のフィールドでソートすることを意味します(フィールド1で開始し、フィールド1で終了します。それ以外の場合は、ソートを決定するために残りの行を使用し続けます)
-k3
は、2番目のキーとして3番目のフィールドでソートすることを意味します。背後に他のフィールドがないため、-k3,3
を指定する必要はありませんが、どちらも問題はありません。
-t:
は、:
文字で行のフィールドを区切ることを意味します。それ以外の場合は、デフォルトで空白が使用されます
詳細については、こちらをご覧くださいSO質問 nixソートで複数のキーをソートする および ソートマニュアルページ