1

私はよく bash スクリプトで grep と sed を使用します。たとえば、スクリプトを使用してテンプレートからコメントを削除します

この例では、コメントは次のようになります。

/*#  my comments contain text and ascii art:
 *#
 *#  [box1] ------> [box2]o
 *#
#*/

これらの行を削除するための sed チェーンは次のようになります。

sed '/^\/\*#/d' | sed '/^\s*\*#/d' | sed '/^\s*#\*\//d'

私のスクリプトでは、\やなどの文字をエスケープする必要があるため/、コードが読みにくくなります。したがって、私の質問は次のとおりです。bash スクリプトで読みやすい正規表現を作成するにはどうすればよいですか?sed

私が考えることができる1つの方法は、の代わりに別のセパレーターを/使用することです.vimのように、ネイティブに%s#search/text#replace/text#gc#asセパレーターを使用して)使用できるため/、エスケープされていない文字として許可されます。代替のエスケープ文字を定義することも役立ちます。この問題をどのように解決するかに興味があります。sed単なる問題だと思われる場合に備えて、代替ツールも用意しています。

4

3 に答える 3

4

こちら で詳しく説明されているように、さまざまなセパレーターを指定できます。

Perl では、読みやすくするために正規表現を複数の行に分割するとともに、これも実行できることに注意してください。

于 2012-10-29T09:12:59.210 に答える
0

別のセパレータを使用することに加えて、必要に応じて拡張正規表現を使用できます。それらはエスケープ規則を逆にするため、特別な意味を与えるために角括弧を「\[\]」と記述する必要があります。

于 2012-10-29T09:18:14.570 に答える