Roh*_*rma 2 sed text-processing regular-expression files
我有一个带有文本的文件
Afghanistan=+93
Albania=+355
Algeria=+213
American Samoa=+1
Andorra=+376
Angola=+244
Run Code Online (Sandbox Code Playgroud)
它具有所有国家/地区列表及其拨号代码。
我想更换:
Afghanistan=+93
和 Afghanistan(+93)=+93
我可以将选择模式设为=\+[0-9]*
,但是替换模式字符串是什么?
我知道\1
这是用于选择的捕获匹配,但它似乎不适用于sed
. 所以正则表达式需要有选择。
我如何使用 sed 或任何其他 unix 工具来做到这一点?
sed 's/=\(+[0-9]\{1,3\}\)/(\1)=\1/'
Run Code Online (Sandbox Code Playgroud)
为了解决您的问题(据我所知):
需要记住的模式sed
用括号括起来——它们的外观定义了它们的索引号。例如:
sed 's/\(<memorized_pattern_1>\)<not_memorized>\(<memorized_pattern_2>\)/\2\1/'
Run Code Online (Sandbox Code Playgroud)
将交换模式 1 和 2 并删除中间的模式。