我有一个文件~/foo.txt
,其中包含以下每个字符串的实例
alpha-1
alpha-2
alpha-3
alpha-4
alpha-5
alpha-6
alpha-7
alpha-8
alpha-9
我想将其中每一个替换alpha-X
为beta-X
.简单地替换alpha-
为beta-
是不够的,因为alpha-
我想保留其他实例。
我想这可以通过类似的事情来完成
perl -p -i -e `s/alpha-SOMETHING/beta-SOMETHING/g'
但我不确定SOMETHING
应该是什么。这里有解决办法吗?
(当然,我可以运行九个单行代码,但这似乎效率很低。)
答案1
perl -p -i -e 's/alpha-(\d)/beta-$1/g'
\d
匹配 0...9(\d)
捕获(保存)匹配的内容并将其分配给变量$1
(如果添加另一个捕获,它将分配给下一个变量$2
)- 如果号码可以有多于一位数字,您可以使用
\d+
它来匹配一位或多位数字。