Regex bash中的Trim变量
我需要将变量Regex bash中的Trim变量,regex,string,bash,sed,Regex,String,Bash,Sed,我需要将变量wordpress.tar.gz修剪为wordpress 我试过: #/bin/bash dir=wordpress.tar.gz echo$dir RELEASE=$($dir | sed“s/-.tar.gz/”) echo${RELEASE} 您可以使用字符串扩展: RELEASE="${dir%%.*}" 见: ${dir%%.*}部分从末尾删除最长的文本块(由于%%),直到第一个点字符 如果要使用sed,可以删除以(包括)第一个点开始的所有字符串: R
wordpress.tar.gz
修剪为wordpress
我试过:
#/bin/bash
dir=wordpress.tar.gz
echo$dir
RELEASE=$($dir | sed“s/-.tar.gz/”)
echo${RELEASE}
您可以使用字符串扩展:
RELEASE="${dir%%.*}"
见:
${dir%%.*}
部分从末尾删除最长的文本块(由于%%
),直到第一个点字符
如果要使用sed
,可以删除以(包括)第一个点开始的所有字符串:
RELEASE="$(sed 's/\..*//' <<< $dir)"
RELEASE=“$(sed's/\..*/')分叉两个子shell(一个子shell用于$(cmds)
,另一个子shell用于|cmd
)和spawnsed
来完成标准POSIX的内置变量扩展所能做的事情是没有意义的:RELEASE=“${dir%.tar.gz}“
您对正则表达式模式有一个问题:点必须转义,不应该使用破折号,我在变量中没有看到任何破折号。
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
RELEASE="$(sed 's/\..*//' <<< $dir)"