Python 有没有办法按shell脚本对行的一部分进行排序

Python 有没有办法按shell脚本对行的一部分进行排序,python,shell,Python,Shell,我在想一种方法,用数字来排列一行的数字 e、 例如,假设有一个文件 瑟夫拉;1234;12:e13:w15:e16:e17:e18:e25:e26:e28:e29:e30:e31:e32:e36:r39:e43:e46:e47:e67:e76:e78:e86:e87:e88:e89:e90:e92:e93:e95:e98:e100:e112:e116:e128:e131:e134:e135:E;瑟夫拉;SA;SA 服务器B;1235;12:R13:W15:E16:E25:E26:E28:R30:

我在想一种方法,用数字来排列一行的数字

e、 例如,假设有一个文件

瑟夫拉;1234;12:e13:w15:e16:e17:e18:e25:e26:e28:e29:e30:e31:e32:e36:r39:e43:e46:e47:e67:e76:e78:e86:e87:e88:e89:e90:e92:e93:e95:e98:e100:e112:e116:e128:e131:e134:e135:E;瑟夫拉;SA;SA

服务器B;1235;12:R13:W15:E16:E25:E26:E28:R30:E31:E36:R37:E39:E43:E45:E46:E47:E106:E128:E136:E137:E;服务器B;某人;某人

SERVERC;1236;30:E28:R12:E13:E15:E16:E17:E25:E26:E36:R37:E39:E43:E45:E46:E47:E78:E89:E106:E112:E128:E136:E137:E;SERVERC;SC;SC

在以SERVERC开头的行中,数字不是按递增顺序排列的,而是按顺序排列的。我想从你那里解决这个问题

SERVERC;1236;30:e28:R12:e13:e15:e16:e17:e25:e26:e36:r37:e39:e43:e45:e46:e47:e78:e89:e106:e112:e128:e136:e137:E;SERVERC;SC;SC

SERVERC;1236;12:E13:E15:E16:E17:E25:E26:E28:R30:E36:R37:E39:E43:E45:E46:E47:E78:E89:E106:E112:E128:E128:E136:E136:E136:E137:E;SERVERC;SC;SC

我听说有很多方法可以通过Java对它们进行排序,但我对Java不是很熟悉,所以我想知道是否可以通过shell脚本来实现这一点。或者Python,如果可能的话

任何线索都将不胜感激。非常感谢

有了bash,您可以

(
如果s=';'
当读取ra字段时,执行以下操作:
字段[2]=$(回显“${fields[2]}”| tr'\n'| sort-t:-k1,1n | paste-sd')
回显“${fields[*]}”
完成<文件
)
或者perl单行程序

perl-F';'-阿内'
$F[2]=联接“”,排序{$a$b}拆分“”,$F[2];
打印连接“;”,@F
"档案"

sort实用程序在行上工作,Python内部的sort在数组上工作。因此,在这两种情况下,您都可以通过将字符串拆分为多个片段,对它们进行排序,然后再将它们组合在一起来进行测试。说到这里,我个人更喜欢用Python而不是POSIX shell来完成,但最终,这取决于您。