Ada*_*tan 17 regex sed logical-operators
我正在尝试替换boots配置文件中命名的包的所有引用.
行格式是add fast (package OR pkg) boots-(any-other-text),例如:
add fast package boots-2.3
add fast pkg boots-4.5
Run Code Online (Sandbox Code Playgroud)
我想用以下代替:
add fast pkg boots-5.0
Run Code Online (Sandbox Code Playgroud)
我尝试了以下sed命令:
sed -e 's/add fast (pkg\|package) boots-.*/add yinst pkg boots-5.0/g'
sed -e 's/add fast [pkg\|package] boots-.*/add yinst pkg boots-5.0/g'
Run Code Online (Sandbox Code Playgroud)
什么是正确的正则表达式?我想我在布尔或(package或pkg)部分缺少一些东西.
bob*_*ogo 23
sed -e 's/add fast \(pkg\|package\) boots-.*/add yinst pkg boots-5.0/g'
Run Code Online (Sandbox Code Playgroud)
您可以通过两次执行来避免OR
sed 's/add fast pkg boots-.*/add yinst pkg boots-5.0/g
s/add fast package boots-.*/add yinst pkg boots-5.0/g'
Run Code Online (Sandbox Code Playgroud)
Spe*_*bun 17
使用扩展的正则表达式模式,不要逃避|.
sed -E -e 's/add fast (pkg|package) boots-.*/add yinst pkg boots-5.0/g'
Run Code Online (Sandbox Code Playgroud)
你混合BRE和ERE都要么逃避(),|要么都没有.
sed默认使用基本正则表达式,允许使用扩展正则表达式是依赖于实现的,例如使用BSD sed你使用-E开关,GNU sed将其记录为-r,但-E也可以.
| 归档时间: |
|
| 查看次数: |
33059 次 |
| 最近记录: |