コードファイル内の| - >文字列の直前にブラケットを置き換えようとしています(同じ行に括弧もありますが各行でこの文字列の直前にある文字列を置換したい|例えば、以下の行では、この行の2番目の括弧を置換したいとします。シェルスクリプトコマンド特定の文字列シェルスクリプトに対して1つの文字だけを置き換えます
プロパティ((REQ1 == 0)| - >(GNT1 == 0));
コードファイル内の| - >文字列の直前にブラケットを置き換えようとしています(同じ行に括弧もありますが各行でこの文字列の直前にある文字列を置換したい|例えば、以下の行では、この行の2番目の括弧を置換したいとします。シェルスクリプトコマンド特定の文字列シェルスクリプトに対して1つの文字だけを置き換えます
プロパティ((REQ1 == 0)| - >(GNT1 == 0));
あなたはsed
でそれを行うことができます。
(
以外のものが続いていますのみ
property (! (req1 == 0) |-> (gnt1 == 0));
それが動作する方法は(
(s/\(
後の1)を探すことであるが、(それは[^(]*
、その後|->
です:210枚の
echo 'property ((req1 == 0) |-> (gnt1 == 0));' | sed 's/\(([^(]*|->\)/! \1/'
プリント。
ありがとうございました。コードファイルのすべてのプロパティに対してこの置換を実行したいと思います。それらをすべて最初にエコーする必要がありますか?また、すべてのコードには異なるプロパティセットがあり、それらをすべて知っているわけではないので、すべてに適用できる一般的なものが必要であり、コードのすべてのプロパティでこの前にのみブラケットを変更します。御時間ありがとうございます。 – mii9
@ mii9:いいえ、 'sed 's /.../' FILENAME'のように、echoを使わずにファイル名をsedに渡すことができます。 –
ありがとうございました。とても役に立ちました。 – mii9
あなたの質問にそのサンプル入力の出力を追加してください。 – Cyrus
希望する出力:プロパティ(!(req1 == 0)| - (gnt1 == 0)); – mii9