【发布时间】:2016-02-28 02:27:20
【问题描述】:
我想打印路由器配置并仅对以模式crypto isakmp key 6 开头的行进行排序。
重要的是我想把这些行放在同一个地方,所以这些行之前和之后的所有行都应该保持在同一个地方和顺序(不排序)。
示例输入文件:
123 345
678 901
bla bla bla
ble ble ble
crypto isakmp key 6 kokofeofepokpfowkfpwjeiofjwiojefiow address 123.456.789.012
crypto isakmp key 6 ofjwiojefiow352okdwofkwkfi9i42kpfsej09f09j4 address 123.456.789.012
crypto isakmp key 6 9i42kpfsej09f09j4ofjwiojefiow352okdwofkwkfi address 123.456.789.012
crypto isakmp key 6 9j4ofjwiojefiow352okdwofkwkfi9i42kpfsej09f0 address 123.456.789.012
ccc ddd eee
fff ggg hhh iii
123 456
所以首先我想打印不变(随机行数):
123 345
678 901
bla bla bla
ble ble ble
然后我想打印以 crypto isakmp key 6 开头的 SORTED 行。
最后我想打印文件的其余部分不变(也是随机的行数):
ccc ddd eee
fff ggg hhh iii
123 456
我已经通过许多操作来管理这个问题,包括获取crypto isakmp key 6 的第一个和最后一个位置以及使用tail / head 命令,但它非常复杂,我想知道 AWK/SED 中是否有选项或者其他 linux 工具为指定的行管理它。请分步说明您的命令的作用。
预期输出(加密排序的其余部分完好无损):
123 345
678 901
bla bla bla
ble ble ble
crypto isakmp key 6 9i42kpfsej09f09j4ofjwiojefiow352okdwofkwkfi address 123.456.789.012
crypto isakmp key 6 9j4ofjwiojefiow352okdwofkwkfi9i42kpfsej09f0 address 123.456.789.012
crypto isakmp key 6 kokofeofepokpfowkfpwjeiofjwiojefiow address 123.456.789.012
crypto isakmp key 6 ofjwiojefiow352okdwofkwkfi9i42kpfsej09f09j4 address 123.456.789.012
ccc ddd eee
fff ggg hhh iii
123 456
【问题讨论】:
标签: linux bash sorting awk sed