1
如何使用RegEx来匹配Unix sed命令中特定字符之前或之后的整数?如何使用RegEx匹配Unix sed命令中特定字符之前或之后的整数?
假设我们有一个sed号码文件:
cat sed-numbers
(1, 2)
(4, 5)
(2, 3)
现在我可以用sed来切换(x, y)
到(y, x)
,但我不知道如何选择,而不选择字符(
的第一个整数,所以,我必须在模式\2
前加上一个(
角色来完成任务:
sed 's/^(\([0-9]*\), \([0-9]*\)/(\2, \1/' sed-numbers
(2, 1)
(5, 4)
(3, 2)
有没有我可以做开关,而不在我SWIT添加(
任何方法ch模式?换句话说,我可以使用RegEx来选择第一个整数,它必须在(
之后,而不是选择(+integer
?
其他问题: 如果我们只需要切换的位置,如果第一个数字是整数,数据格式是:
(11, 2)
(0.2, 5)
(2.1, 3)
(4, 2.1)
如果什么数据格式为(11,2) (0.2,5) (2.1,3) (4,2.1)?如果第一个数字是整数,我们只能切换位置。 – Yong 2014-10-18 18:05:36
你能否根据上述评论更新你的问题?你想要perl解决方案吗? – 2014-10-18 18:10:25
感谢您的真棒解决方案!除了perl,有可能解决额外的问题,只能使用sed?顺便说一句,我尝试了你的Perl解决方案的额外问题。它不适用于(4,2.1),4是一个整数,但它没有切换位置。 – Yong 2014-10-19 16:41:37