POP9
我有一个文本文件,其中包含诸如, POP10
- 一般情况下的单词实例。同一文件还具有单词实例,例如, , ie `.POPnumber
POP(1)
POP(2)
POP(number)
我正在寻找一种方法将所有实例转换为并让现有实例保持不变。我可以通过什么方式实现它?POPnumber
POP(number)
POP(number)
sed
答案1
sed 's/\(POP\)\([0123456789]\{1,\}\)/\1(\2)/g' < input.txt > output.txt
哪里\(...\)
习惯了捕获\1
匹配的内容,以便它们可以在,中的替换中使用\2
,[0123456789]
匹配集合中的任何单个字符,并\{1,\}
匹配前面的一个或多个字符,这里是数字。
如果您sed
支持-E
扩展正则表达式,您可以使用以下方法缩短它(并使其更易于阅读):
sed -E 's/(POP)([0123456789]+)/\1(\2)/g' < input.txt > output.txt