Linux sortC解析
sortコマンドはLinuxで非常に役立ち、ファイルをソートし、ソート結果を標準出力します.sortコマンドは、特定のファイルからもstdinからも入力を取得できます.
構文
オプション
パラメータ
≪ファイル|File|emdw≫:ソートするファイルのリストを指定します.
≪インスタンス|Instance|emdw≫
sortはファイル/テキストの各行を1単位として比較し,比較原則は先頭文字から後ろに,ASCIIコード値を順次比較し,最後に昇順に出力する.
同じ行を無視-uオプションまたはuniqを使用します.
sortの-n、-r、-k、-tオプションの使用:
-kオプションの具体的な構文形式:
-kオプションの構文形式:
この構文フォーマットは、その中のカンマによって、Start部分とEnd部分の2つの大部分に分けることができます.Start部分も3つの部分で構成されており、その中のModifier部分は私たちが前に言ったnとrのようなオプション部分です.スタート部分のFStartとC.スタートについて重点的にお話しします.C.Startも省略可能であり、省略すると本ドメインの先頭部分から始まることを示す.FStart.CStartは、FStartが使用するドメインを表し、CStartはFStartドメインで何番目の文字から「ソートヘッダ」を表す.同じように、End部分ではFEndを設定することができます.CEnd、省略すると.CEndは、「ドメインの末尾」、すなわち、このドメインの最後の文字を表す.あるいは、CEndを0(ゼロ)に設定すると、「ドメインの末尾」に終わることを示します.
会社の英語名の2番目のアルファベットからソートします.
-k 1.2を用いて、第1のドメインの第2の文字から本ドメインの最後の文字までの文字列をソートすることを示す.baiduは2番目のアルファベットがaで1位になったことに気づきます.sohuとgoogleの2番目の文字はoですが、sohuのhはgoogleのoの前にあるので、両者はそれぞれ2番目と3番目に並んでいます.gugeは4位に屈するしかない.
会社の英語名の2番目のアルファベットのみをソートします.同じ従業員給与で降順にソートする場合は、次のようにします.
2番目のアルファベットのみをソートするため、-k 1.2,1.2の表現を使用して、2番目のアルファベットのみをソートすることを表します.(私が-k 1.2を使っているのにどうしてだめなのかと聞かれたら、もちろんだめです.End部分を省略しているので、2番目のアルファベットからドメインの最後の文字までの文字列をソートすることを意味します).従業員の給与をソートするには、-k 3,3も使用しました.これは最も正確な表現で、私たちが「本ドメインのみ」ソートしていることを示しています.後の3を省略すると、「3番目のドメインから最後のドメイン位置までの内容をソートする」ことになります.
構文
sort( )( )
オプション
-b: ;
-c: ;
-d: , 、 , ;
-f: , ;
-i: , 040 176 ASCII , ;
-m: ;
-M: 3 ;
-n: ;
-o: ;
-u:
-r: ;
-k:
-t: ;
+-: , 。
パラメータ
≪ファイル|File|emdw≫:ソートするファイルのリストを指定します.
≪インスタンス|Instance|emdw≫
sortはファイル/テキストの各行を1単位として比較し,比較原則は先頭文字から後ろに,ASCIIコード値を順次比較し,最後に昇順に出力する.
[root@mail text]# cat sort.txtaaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
eee:50:5.5[root@mail text]# sort sort.txtaaa:10:1.1
bbb:20:2.2
ccc:30:3.3
ddd:40:4.4
eee:50:5.5
eee:50:5.5
同じ行を無視-uオプションまたはuniqを使用します.
[root@mail text]# cat sort.txtaaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
eee:50:5.5[root@mail text]# sort -u sort.txtaaa:10:1.1
bbb:20:2.2
ccc:30:3.3
ddd:40:4.4
eee:50:5.5
[root@mail text]# uniq sort.txtaaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
sortの-n、-r、-k、-tオプションの使用:
[root@mail text]# cat sort.txtAAA:BB:CC
aaa:30:1.6
ccc:50:3.3
ddd:20:4.2
bbb:10:2.5
eee:40:5.4
eee:60:5.1
# BB :[root@mail text]# sort -nk 2 -t: sort.txtAAA:BB:CC
bbb:10:2.5
ddd:20:4.2
aaa:30:1.6
eee:40:5.4
ccc:50:3.3
eee:60:5.1
# CC :[root@mail text]# sort -nrk 3 -t: sort.txteee:40:5.4
eee:60:5.1
ddd:20:4.2
ccc:50:3.3
bbb:10:2.5
aaa:30:1.6
AAA:BB:CC
# -n ,-r ,-k ,-t
-kオプションの具体的な構文形式:
-kオプションの構文形式:
FStart.CStart Modifie,FEnd.CEnd Modifier
-------Start--------,-------End--------
FStart.CStart , FEnd.CEnd
この構文フォーマットは、その中のカンマによって、Start部分とEnd部分の2つの大部分に分けることができます.Start部分も3つの部分で構成されており、その中のModifier部分は私たちが前に言ったnとrのようなオプション部分です.スタート部分のFStartとC.スタートについて重点的にお話しします.C.Startも省略可能であり、省略すると本ドメインの先頭部分から始まることを示す.FStart.CStartは、FStartが使用するドメインを表し、CStartはFStartドメインで何番目の文字から「ソートヘッダ」を表す.同じように、End部分ではFEndを設定することができます.CEnd、省略すると.CEndは、「ドメインの末尾」、すなわち、このドメインの最後の文字を表す.あるいは、CEndを0(ゼロ)に設定すると、「ドメインの末尾」に終わることを示します.
会社の英語名の2番目のアルファベットからソートします.
$ sort -t ' ' -k 1.2 facebook.txtbaidu 100 5000
sohu 100 4500
google 110 5000
guge 50 3000
-k 1.2を用いて、第1のドメインの第2の文字から本ドメインの最後の文字までの文字列をソートすることを示す.baiduは2番目のアルファベットがaで1位になったことに気づきます.sohuとgoogleの2番目の文字はoですが、sohuのhはgoogleのoの前にあるので、両者はそれぞれ2番目と3番目に並んでいます.gugeは4位に屈するしかない.
会社の英語名の2番目のアルファベットのみをソートします.同じ従業員給与で降順にソートする場合は、次のようにします.
$ sort -t ' ' -k 1.2,1.2 -nrk 3,3 facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
2番目のアルファベットのみをソートするため、-k 1.2,1.2の表現を使用して、2番目のアルファベットのみをソートすることを表します.(私が-k 1.2を使っているのにどうしてだめなのかと聞かれたら、もちろんだめです.End部分を省略しているので、2番目のアルファベットからドメインの最後の文字までの文字列をソートすることを意味します).従業員の給与をソートするには、-k 3,3も使用しました.これは最も正確な表現で、私たちが「本ドメインのみ」ソートしていることを示しています.後の3を省略すると、「3番目のドメインから最後のドメイン位置までの内容をソートする」ことになります.