echo "abc:cde;123:456" | sed -r 's/([^:]+)(;.*:)([^:]+$)/\3/'
输出结果是abc:456然后echo "abc:cde;123:456" | sed -r 's/([^:]+)(;.*:)([^:]+$)/\3\3\3/'
输出结果是abc:456456456这个是为什么?按理解第3个分组应该是456吧?
输出结果是abc:456然后echo "abc:cde;123:456" | sed -r 's/([^:]+)(;.*:)([^:]+$)/\3\3\3/'
输出结果是abc:456456456这个是为什么?按理解第3个分组应该是456吧?
你这么分组,就把abc排除在外,cde是分组1 ;123:是分组2 456是分组3,你用sed替换,就是把cde;123:456提换成组3,也就是456,最后结果不就是abc:456,然后第二条,把cde;123:456替换成3个组3,结果就是abc:456456456了