次のような出力を含むファイルがあります。
MIKE;123456
JOHN-HELPER;654321
SAM.SMITH;182364
行末に移動するには、区切り記号の前にすべてが必要なので、次のようになります。
123456;MIKE
654321;JOHN-HELPER
182364;SAM.SMITH
それを解決するのに苦労していsed
ます...何かアイデアはありますか?
たとえば、次のようにします。
$ 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
フィールド区切り文字として設定;
し、フィールドを逆に出力します。