使用sed交换列

时间:2012-07-07 20:39:27

标签: sed swap

我在文件test中有如下数据:

2233:Jorge Bill :56Blue Pkwy  :99999
1111:Mary Smith :33Red Street :123456

我想使用sed和分组交换姓氏和名字,但我的代码不起作用!

sed 's/\([^:]*:\)\([^' ']*' '\)\([^:]*\)/\1\3\2' test

你知道出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

你忘了逃避你的正则表达式中的单引号,并且你还需要在替换字符串的末尾再加一个正斜杠。我摆脱了单引号,就在这里。

sed 's/\([^:]*:\)\([^ ]* \)\([^:]*\)/\1\3\2/' test