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 つのグループを「キャッチ」;します。次のステップは、これらのブロックを逆に出力することです: \2;\1.

またはawk

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

フィールド区切り文字として設定;し、フィールドを逆に出力します。

于 2013-10-18T14:04:40.090 に答える