我的文件输出如下:
MIKE;123456
JOHN-HELPER;654321
SAM.SMITH;182364
我需要在分隔符之前的所有内容移动到行的末尾,所以它看起来像这样:
123456;MIKE
654321;JOHN-HELPER
182364;SAM.SMITH
挣扎着用sed
......任何想法来解决这个问题吗?
答案 0 :(得分: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
它将;
设置为字段分隔符,然后以相反的方式打印字段。