curluneの日記

日々試行錯誤。雑多に、気ままに、てきとーに。HoloLens/Oculus Rift,Touchと戯れる日々。

vimでテキストをソートする ひとりぷちアドベントカレンダー2017 20日目

vim内蔵のソートコマンド:sortについてのお話です。

ソート対象

次のテキストをいろいろ並び替えてみます。

bb,100
ccc,03
a,2
ccc,03

ふつうに

しんぷる。

:sort
a,2
bb,100
ccc,03
ccc,03

逆順

!を付けると逆順になります。

:sort!
ccc,03
ccc,03
bb,100
a,2

カンマの後項目で

ソートする際に無視する文字を正規表現で指定できます。 最初の,までを無視する場合はこちら。

:sort /[^,]*,/
ccc,03
ccc,03
bb,100
a,2

文字列としてソートされるのでちょっと残念な結果に...。

数字として見る

先ほどのものにnを追加すると、数字として見て並び替えてくれます。

:sort n /[^,]*,/
a,2
ccc,03
ccc,03
bb,100

そのほか、16進数や、少数を指定する方法もあります。

カンマの後の項目でその2

正規表現の利用としては、無視する、ではなく、該当部分でソート、もできます。rをつけるだけです。

:sort n r /\d\+/
a,2
ccc,03
ccc,03
bb,100

終わりに

内蔵なのでいつでも使えるのがよいですね。 正規表現を頑張るといろいろできます。