正規表現の一致を一致を含む文字列に置き換えます。

正規表現の一致を一致を含む文字列に置き換えます。

テキストを含むファイルがあります。

Afghanistan=+93
Albania=+355
Algeria=+213
American Samoa=+1
Andorra=+376
Angola=+244

これには、すべての国とその国のダイヤルコードのリストが含まれます。

交換したい項目:

Afghanistan=+93そしてAfghanistan(+93)=+93

選択パターンをとして取得できますが、=\+[0-9]*代替パターン文字列は何ですか?

私は\1これが選択マッチをキャプチャしていることを知っていますが、うまくいかないようですsed。したがって、正規表現には選択が必要です。

sedまたは他のUNIXツールを使用してこれをどのように実行できますか?

ベストアンサー1

sed 's/=\(+[0-9]\{1,3\}\)/(\1)=\1/' 

問題を解決するには(私の知る限り):

覚えておくべきパターンはsed括弧で囲む必要があります。パターンの外観はインデックス番号を定義します。たとえば、

sed 's/\(<memorized_pattern_1>\)<not_memorized>\(<memorized_pattern_2>\)/\2\1/'

パターン 1 と 2 が変わり、その間のパターンが削除されます。

おすすめ記事