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