<分区>
我需要将变量 wordpress.tar.gz
修剪为 wordpress
。
我试过:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir
RELEASE=$($dir | sed "s/-.tar.gz//")
echo ${RELEASE}
<分区>
我需要将变量 wordpress.tar.gz
修剪为 wordpress
。
我试过:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir
RELEASE=$($dir | sed "s/-.tar.gz//")
echo ${RELEASE}
最佳答案
你可以使用字符串扩展:
RELEASE="${dir%%.*}"
参见 online Bash demo :
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
${dir%%.*}
部分从末尾(由于 %%
)删除最长的文本 block ,直到第一个点字符。
如果你想使用sed
,你可以删除所有以第一个点开始(包括)的字符串:
RELEASE="$(sed 's/\..*//' <<< $dir)"
在这里,\..*
匹配一个点,然后匹配字符串末尾的任何零个或多个字符,并且匹配被替换为空字符串(被删除),因为 RHS 是空的.
关于regex - 在 bash 中修剪变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63969452/