我想要替换掉所有的命令选项
#!/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 年 4 月 26 日 via Android
Shell Parameter Expansion 这里不是正则
echo ${test//-*([a-z])} |
2
taolu 2019 年 4 月 26 日 via Android
加个空格定界
echo ${test//-[a-z]*\ /} |
3
msg7086 2019 年 4 月 26 日
// 是文本替换又不是正则替换……
|
4
james122333 2019 年 5 月 3 日
shopt -s extglob
test="rm -rf -b hello" echo ${test//-+([a-z])/} |