当前位置: 技术问答>linux和unix
请问一下文本 如何排序
来源: 互联网 发布时间:2017-02-20
本文导语: 文件如下 [gol] comment = xxx path = XXX [voc] comment = xxx comment = xxx [ACE] A=XXX B=XXX 排序后预期结果为 [ACE] A=XXX B=XXX [gol] comment = xxx path = XXX [voc] comment ...
文件如下
[gol]
comment = xxx
path = XXX
[voc]
comment = xxx
comment = xxx
[ACE]
A=XXX
B=XXX
排序后预期结果为
[ACE]
A=XXX
B=XXX
[gol]
comment = xxx
path = XXX
[voc]
comment = xxx
comment = xxx
想根据[]里面的第一个字母进行排序,没有什么好点子。
希望各位大侠帮忙出出点子。
[gol]
comment = xxx
path = XXX
[voc]
comment = xxx
comment = xxx
[ACE]
A=XXX
B=XXX
排序后预期结果为
[ACE]
A=XXX
B=XXX
[gol]
comment = xxx
path = XXX
[voc]
comment = xxx
comment = xxx
想根据[]里面的第一个字母进行排序,没有什么好点子。
希望各位大侠帮忙出出点子。
|
可以这样试试
awk '$0~/[/ {printf "n"} {printf "%s;", $0} END{print}' yourfile|sort|tr ';' 'n'
就是把文件的每一段先串起来,分号分隔
排序之后,再把分号替换为换行
awk '$0~/[/ {printf "n"} {printf "%s;", $0} END{print}' yourfile|sort|tr ';' 'n'
就是把文件的每一段先串起来,分号分隔
排序之后,再把分号替换为换行