0

私はsedの初心者で、次の文字列を置き換えようとしています:

a_b0_24[0][1]に変更する必要があります a_b0_24_0__1_

カッコ内は数字のみ。括弧の前のテキストは、数字、アルファベット、またはアンダースコアのみです。

ありがとう

4

3 に答える 3

0

という名前の bash 変数にテキストがあるとしますTEXT

$ echo $TEXT | sed -e 's/\[\|\]/_/g'

それを分解するには:

  • ブラケットに一致する正規表現は、"[|]" のようになります。括弧はリテラルで、真ん中のパイプは「または」を意味します。ただし、正規表現言語では括弧にメタ的な意味があるため、リテラル (バックスラッシュ) として解釈されるようにエスケープする必要があります。パイプのエスケープに関しては、なぜそれが必要なのか完全にはわかりませんが、それなしでは機能しません。
  • 「g」は単に「最初のマッチだけでなく、すべてのマッチに対してこれを行う」という意味です (「グローバル」を表します)。
于 2013-07-18T15:21:44.163 に答える