sed正規表現を使用する場合、置換プロセス中に実際に変更せずにクエリに句読点を使用する方法はありますか?

sed正規表現を使用する場合、置換プロセス中に実際に変更せずにクエリに句読点を使用する方法はありますか?

句読点をそのまま維持しながら XOrg[,.;] を X-Org[ に変更したいとしましょう。したがって、XOrgはX-Orgを提供し、「XOrg」は「X-Org」を提供する式です。

Linux端末でsedを使用してこれを行う方法はありますか?

今私はできます

  sed -r 's/XOrg[ ,.;]/X-Org/g'

ただし、ここでは、反対側の端にどの句読点を表示するかを選択する必要があります。見つかった句読点を維持するようにどのように言いますか?

ベストアンサー1

ここで答えを見つけました。http://www.grymoire.com/Unix/Sed.html#uh-4a

クエリを一連の文字(句読点やスペースなど)で区切ってこれらの文字を置き換えずに出力に保持するには、次の設定を使用できます。

    sed -r 's/([group1])term([group2])/\1output\2/g' 

ここで ([groupx]) は ([ ,.;)(]) または ([[:punct:] ]) です。

前任者。

   echo dep\!|sed -r 's/dep([ ,.;)!])/dependency\1/' 

与える:デップ! ->依存!

  echo ' dep,'|sed -r 's/([[:punct:] ])dep([[:punct:] ])/\1dependency\2/' 

'dep' -> '依存関係'を提供します。

おすすめ記事