目标
我想要替换掉所有的命令选项
期望结果
#!/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
问题
为什么我的量词 * 没有起作用 ? 感觉这里起了通配符的作用。
我想要替换掉所有的命令选项
#!/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 Apr 26, 2019 via Android
Shell Parameter Expansion 这里不是正则
echo ${test//-*([a-z])} |
2
taolu Apr 26, 2019 via Android
加个空格定界
echo ${test//-[a-z]*\ /} |
3
msg7086 Apr 26, 2019
// 是文本替换又不是正则替换……
|
4
james122333 May 3, 2019
shopt -s extglob
test="rm -rf -b hello" echo ${test//-+([a-z])/} |