Text-Processing

文本文件排序

  • August 30, 2016

我有一個日誌文件

name = CE_20_122 assigned_hostnames = host1 cpuset_name = usr_1397032 
name = CE_21_122 assigned_hostnames = host4 cpuset_name = usr_1397028 
name = CE_22_122 assigned_hostnames = host4 cpuset_name = usr_1397024 
.
.
.
name = CE_76_122 assigned_hostnames = host27 cpuset_name = usr_1397012 
name = CE_77_122 assigned_hostnames = host28 cpuset_name = usr_1397128

命令

sort logfile

將行作為一個整體進行排序。

如何按其中一列對行進行排序,例如 byhostX或 by usr_X

通過主機X:

排序-nk 6.6

由 usr_X

排序-nk 9.6

在 Vim 中:

:sort n /host\d*/

按主機排序,以及

:sort n /usr_\d*/

按使用者排序。由於第一次使用 vim 可能會讓人不知所措,因此您可以改為從命令行執行此操作。

vim file.txt -c "sort n /host\d*/" -c "wq"

或者

vim file.txt -c "sort n /usr_\d*/" -c "wq"

引用自:https://unix.stackexchange.com/questions/306780