Pythonファイルから次の2行のコードをsed
。
多くのコマンドを試しましたが、すべてsed
プレーンテキスト行で機能しますが、スペース/タブ^ [ \ s]または^ [ \ t]のある行では機能しません。
def get_user_creds(user):
# some lines of code
user.invoke()
user.process(user)
期待される:
def get_user_creds(user):
# some lines of code
user.reinvoke()
ベストアンサー1
re
ですべての行を挿入しuser.invoke()
てすべての行を削除するのはとても簡単です。user.process(user)
問題は、行が一緒に表示されたときにのみ変更することです。
では、常に2行を一緒に処理し、常に追加の行を追加し、両方の行を埋め、最初の行を印刷して削除して、次の行を処理し続ける必要があるsed
場合にこのパターンを使用できます。N;P;D
N
P
D
あなたの場合:
sed '$!N;s/user.invoke().*\n.*user.process(user)/user.reinvoke()/;P;D'
(現在はテストできませんが、動作すると確信しています。)