2列に並べ替え

2列に並べ替え

sales1以下を実行するために、nawkusingとcommandという名前のシェルスクリプトを作成します。 1.ファイルを2つの部分(東と西)に分割して印刷します。各部分の行は、姓のアルファベット順に各四半期と各人の合計売上高を表示します。 。 2.営業担当者の3つのグループの名前を印刷します。 「次の人々の総売上は270ドル以上です。」 「次の人々の総売上は$250~$270です。」 「次の人の売上総額は250ドル未満です。」 sort




east:Sam Smith:52:72:78:62  
east:Daniel Liebelt:83:78:84:61  
east:Shirley Couts:66:57:67:37  
east:James Peringer:50:62:56:94  
east:Lilly Batsuro:58:85:84:52  
west:Alex Opitz:79:68:57:93  
west:Carmen Gondar:62:58:85:56  
west:Derek Willard:63:69:74:43  
west:Kim Husak:89:91:63:64  
west:Lenny Taufa:53:61:82:52

#1の助けが必要です...

頑張った

sort -k1,1 -k2,2

しかし、城ではなく東、西にのみ並べられます。最初の列を方向と名前で処理し、2番目の列を数字を含む姓で処理しようとしています。

答え1

最初のフィールドと3番目のフィールド(今回はフィールド区切り文字として使用)を最後のフィールド(たとえば、パフォーマンスの後のすべての項目)の前に追加し、最後のフィールドから最初のフィールドを再度削除できますawk:sort:awk:

awk '$NF=":"$NF' infile | sort -t : -k1,1 -k3,3 | awk 'sub(/:/, "", $NF)'

最終結果:

east:Lilly Batsuro:58:85:84:52
east:Shirley Couts:66:57:67:37
east:Daniel Liebelt:83:78:84:61
east:James Peringer:50:62:56:94
east:Sam Smith:52:72:78:62
west:Carmen Gondar:62:58:85:56
west:Kim Husak:89:91:63:64
west:Alex Opitz:79:68:57:93
west:Lenny Taufa:53:61:82:52
west:Derek Willard:63:69:74:43

答え2

sed -r 's/^([^:]+):([^ ]+) ([^:]+):.*$/\1-\3 &/' your-file.txt  | \
    sort | sed -r 's/[^ ]+ (.*)/\1/'

例:

$ sed -r 's/^([^:]+):([^ ]+) ([^:]+):.*$/\1-\3 &/' your-file.txt  | sort | sed -r 's/[^ ]+ (.*)/\1/'
east:Lilly Batsuro:58:85:84:52
east:Shirley Couts:66:57:67:37
east:Daniel Liebelt:83:78:84:61
east:James Peringer:50:62:56:94
east:Sam Smith:52:72:78:62
west:Carmen Gondar:62:58:85:56
west:Kim Husak:89:91:63:64
west:Alex Opitz:79:68:57:93
west:Lenny Taufa:53:61:82:52
west:Derek Willard:63:69:74:43

さて、以下は、sort次の実行時に最初と2番目のフィールドを選択する方法ですsort -k1,1 -k2,2

$ sort --debug -k1,1 -k2,2 ttt.txt
east:Daniel Liebelt:83:78:84:61
___________
           ____________________
_________________________________
east:James Peringer:50:62:56:94
__________
          _____________________
_________________________________
east:Lilly Batsuro:58:85:84:52
__________
          ____________________
________________________________
east:Sam Smith:52:72:78:62
________
        __________________
____________________________
east:Shirley Couts:66:57:67:37
____________
            __________________
________________________________
west:Alex Opitz:79:68:57:93
_________
         __________________
_____________________________
west:Carmen Gondar:62:58:85:56
___________
           ___________________
________________________________
west:Derek Willard:63:69:74:43
__________
          ____________________
________________________________
west:Kim Husak:89:91:63:64
________
        __________________
____________________________
west:Lenny Taufa:53:61:82:52
__________
          __________________

関連情報