2017-01-24 13 views
0

linuxのテキストファイルに3つの更新があります。以下のような順序を変更したい、sedまたはawk alseが試されましたが、複雑に聞こえますが、メモ帳で終えることができますが、 Linuxで?ありがとう。linuxでテキストの順序を変更する方法は?

orginal:

UPDATE `test`.`t1` 
    SET 
    id=1 , 
    name='daiiy' , 
    sex=2 , 
    address='guangzhou' 
    WHERE 
    id=1 ; 



    UPDATE `test`.`t2` 
    SET 
    id=2 , 
    name='tom' , 
    sex=1 , 
    address='shanghai' 
    WHERE 
    id=2 ; 



    UPDATE `test`.`t3` 
    SET 
    id=3 , 
    name='liany' , 
    sex=2 , 
    address='beijing' 
    WHERE 
    id=3 ; 

がどのように変化する:

UPDATE `test`.`t3` 
    SET 
    id=3 , 
    name='liany' , 
    sex=2 , 
    address='beijing' 
    WHERE 
    id=3 ; 


    UPDATE `test`.`t2` 
    SET 
    id=2 , 
    name='tom' , 
    sex=1 , 
    address='shanghai' 
    WHERE 
    id=2 ; 

    UPDATE `test`.`t1` 
    SET 
    id=1 , 
    name='daiiy' , 
    sex=2 , 
    address='guangzhou' 
    WHERE 
    id=1 ; 
+0

SOは無料のコード作成サービスではありません。何か試しましたか? – codeforester

+0

"メモ帳で仕上げることができます" - >あなたがしたいことは、メモ帳ですばやく素早く(選択した線、切り取り、別の場所に貼り付ける)です。メモ帳を少し使っても大丈夫なら、それを使ってすべてをやってください。 –

答えて

0

あなたは次の操作を行うことができますperlへのアクセス権を持っている場合...

 

    perl -0pe 's/(.*)^(.*)UPDATE(.*);(.*)UPDATE(.*);(.*)UPDATE(.*);(.*)/\2UPDATE\7;\n\n\2UPDATE\5;\n\n\2UPDATE\3;\n\n/s' input.txt 

:これは、 3つのレコードすべてでインデントが同じであることを前提としています。

関連する問題