0

我有一个输出如下的文件:

MIKE;123456
JOHN-HELPER;654321
SAM.SMITH;182364

我需要分隔符之前的所有内容移动到行尾,所以它看起来像这样:

123456;MIKE
654321;JOHN-HELPER
182364;SAM.SMITH

努力解决它sed……有什么想法吗?

4

1 回答 1

2

像这样,例如:

$ sed -r 's/([^;]*);(.*)/\2;\1/' a
123456;MIKE
654321;JOHN-HELPER
182364;SAM.SMITH

它“捕获”了两组:之前的所有内容;,然后是其余的。下一步是反过来打印这些块:\2;\1.

或与awk

$ awk -F";" '{print $2";"$1}' a
123456;MIKE
654321;JOHN-HELPER
182364;SAM.SMITH

它设置;为字段分隔符,然后以相反的方式打印字段。

于 2013-10-18T14:04:40.090 回答