何千ものファイルを見つけて見つけなければなりません。
# disabledRule:
この行では、andにfileinto
続くfileinto_copy
一連のキーワードを見つける必要があります。例:create
target
{s:4:"type";s:8:"fileinto";s:6:"create";b:0;s:6:"target";s:5:"PATTERN";}
{s:4:"type";s:13:"fileinto_copy";s:6:"create";b:0;s:6:"target";s:5:"PATTERN";}
このキーワードの後にPATTERNを修正して.
ください/
。
PATTERN にはほぼすべての文字を含めることができます。例えば
simple.folder.structure
more.complex.[department_1] @employee-XY
セクションはキーワードによって多少異なる場合があり、「キーワード+パターン」パターン全体が1行に複数回表示されることがあります。
これは簡単なようですが、大きなスクリプトを書いて行を分離せずにsed
動作させる方法を見つけることができませんでした。awk
私はsed
物を交換してパターンを見つけるのにかなり上手だと思いますが、置換をパターンに限定する方法がわかりません。
長いスクリプトを書かずにこれを行う方法についての提案はありますか?sed
キャプチャグループを処理する方法はありますか?
アップデート:あなたがいくつか見つけたかもしれないように、移行のためにファイルを修正する必要があります。私たちは新しいソフトウェアが完全に互換性がないことを知っていますが、新しいソフトウェアは上記の「#disabledRule」行をまったく認識しないことがわかりました。したがって、これらの観点から問題を解決することはできません。
答え1
はい、さまざまなアドレスを使用できますが、特定のセクションがいつ終了するかはsed
わかりません。# disabledRule:
たとえば、次の空行で終わり、与えられた行に線パターンの外側に他の点がない場合は、filecopy
非常に簡単です。
sed '/^# disabledRule:$/,/^$/s_\._/_g'
しかし、この場合はおそらく尋ねません。キーワードに対して追加のフィルタリングが実行されます。
sed '/^# disabledRule:$/,/^$/{/"fileinto\(_copy\)*".*"create".*"target"/s_\._/_g;}'
それでも要件が満たされない場合は、さらに修正するか、できるだけ長いファイルの例を提供して詳細を説明してください。