BASH: 按域对电子邮件地址列表进行排序
BASH: sort email address list by domain
我想在 bash 中按域对文件中的电子邮件地址列表进行排序。
$ cat file.txt
abc@abc.net
bbb@aaa.org
aba@aaa.com
aaa@aaa.com
ccc@abb.com
aba@abb.com
abc@abc.com
我试过排序,但它只从用户名开始排序。
$ sort file.txt
aaa@aaa.com
aba@aaa.com
aba@abb.com
abc@abc.com
abc@abc.net
bbb@aaa.org
ccc@abb.com
我想先对域进行排序,然后对用户名进行排序。
$ sort -t @ -k2 file
aaa@aaa.com
aba@aaa.com
bbb@aaa.org
aba@abb.com
ccc@abb.com
abc@abc.com
abc@abc.net
man sort
:
-t, --field-separator=SEP
use SEP instead of non-blank to blank transition
-k, --key=KEYDEF
sort via a key; KEYDEF gives location and type
我想在 bash 中按域对文件中的电子邮件地址列表进行排序。
$ cat file.txt
abc@abc.net
bbb@aaa.org
aba@aaa.com
aaa@aaa.com
ccc@abb.com
aba@abb.com
abc@abc.com
我试过排序,但它只从用户名开始排序。
$ sort file.txt
aaa@aaa.com
aba@aaa.com
aba@abb.com
abc@abc.com
abc@abc.net
bbb@aaa.org
ccc@abb.com
我想先对域进行排序,然后对用户名进行排序。
$ sort -t @ -k2 file
aaa@aaa.com
aba@aaa.com
bbb@aaa.org
aba@abb.com
ccc@abb.com
abc@abc.com
abc@abc.net
man sort
:
-t, --field-separator=SEP
use SEP instead of non-blank to blank transition
-k, --key=KEYDEF
sort via a key; KEYDEF gives location and type