Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex bash中的Trim变量_Regex_String_Bash_Sed - Fatal编程技术网

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
)和spawn
sed
来完成标准POSIX的内置变量扩展所能做的事情是没有意义的:
RELEASE=“${dir%.tar.gz}“
您对正则表达式模式有一个问题:点必须转义,不应该使用破折号,我在变量中没有看到任何破折号。
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
RELEASE="$(sed 's/\..*//' <<< $dir)"