行からデータを抽出し、抽出されたデータを使用して新しい行を追加する方法は?

行からデータを抽出し、抽出されたデータを使用して新しい行を追加する方法は?

ソースコードがありますが、いくつかの特定の行を新しい書式とテキストに置き換えたいと思います。

ファイルには次の行が含まれています。

LogIfYouCan(!is_it_ready, "Log Text, some variable: " << variable1 << " variable2: " << variable2);

入れ替えたいです。

if(!is_it_ready) {
   LogOutput("Log Text, some variable: " << variable1 << " variable2: " << variable2);
}

つまり、 で始まる行は行末までテキストLogIfYouCanに変更され、カンマまでのテキストは中括弧とともに追加されます。LogOutputどうすればいいですか?そして、?,(,ifsedawk

ベストアンサー1

使用sed

$ sed -E 's/[^!]*([^,]*),[^"]*(.*)/if(\1) {\n   LogOutput(\2\n}/' input_file
if(!is_it_ready) {
   LogOutput("Log Text, some variable: " << variable1 << " variable2: " << variable2);
}

おすすめ記事