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
終わりに
内蔵なのでいつでも使えるのがよいですね。 正規表現を頑張るといろいろできます。