以下はテキストファイルの例です。
195.92.211.47:21029:400
195.92.211.48:21023:400
2番目の列の最後の2桁に基づいてファイル行をソートする方法は? 2番目の列は常に5桁の数字です。
ベストアンサー1
2番目:
に区切られたフィールドには常に5桁の数字が含まれているとします。
$ sort -t ':' -k2.4,2n file
195.92.211.48:21023:400
195.92.211.47:21029:400
文字4(この機能)からフィールドの終わりまでの2番目のフィールドをソートキーとして使用し、-k2.4,2n
入力をそのキー(最後のキー)に基づいて数字でソートするように指示します。数字で並べ替えるにはsort
.4
n
みんな2番目のフィールドはを使用します-k2,2n
。我々は-t ':'
フィールドがコロンで区切られたと述べた。
コマンドを実行すると(--debug
ここにGNUとOpenBSDの両方が表示されますsort
)、正しい数字でソートされていることがわかります。sort
$ gsort --debug -t ':' -k2.4,2n file
gsort: text ordering performed using simple byte comparison
195.92.211.48:21023:400
__
_______________________
195.92.211.47:21029:400
__
_______________________
$ sort --debug -t ':' -k2.4,2n file
Memory to be used for sorting: 2139060224
sort_method=heapsort
; k1=<23>, k2=<29>; s1=<195.92.211.48:21023:400>, s2=<195.92.211.47:21029:400>; cmp1=-1
195.92.211.48:21023:400
195.92.211.47:21029:400