我想要替换掉所有的命令选项
#!/usr/bin/env bash
test="rm -rf -b hello"
echo ${test//-[a-z]*/}
期望输出
rm hello
#!/usr/bin/env bash
test="rm -rf -b hello"
echo ${test//-[a-z]*/}
输出
rm
为什么我的量词 * 没有起作用 ? 感觉这里起了通配符的作用。
1
hljjhb 2019-04-26 18:52:28 +08:00 via Android
Shell Parameter Expansion 这里不是正则
echo ${test//-*([a-z])} |
2
taolu 2019-04-26 18:55:05 +08:00 via Android
加个空格定界
echo ${test//-[a-z]*\ /} |
3
msg7086 2019-04-26 23:14:54 +08:00
// 是文本替换又不是正则替换……
|
4
james122333 2019-05-03 16:14:11 +08:00
shopt -s extglob
test="rm -rf -b hello" echo ${test//-+([a-z])/} |