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
String 使用bash/sh脚本从字符串中删除特定字符和特殊字符_String_Bash_Replace_Sh_Special Characters - Fatal编程技术网

String 使用bash/sh脚本从字符串中删除特定字符和特殊字符

String 使用bash/sh脚本从字符串中删除特定字符和特殊字符,string,bash,replace,sh,special-characters,String,Bash,Replace,Sh,Special Characters,只需从上述变量中提取此字符串的一部分 myVar = designers/Atom-CMP-d0b3695.zip 我尝试了几种方法,但仍然找不到解决这个问题的合适方法?任何快速的帮助都是非常有用的 myDesiredVar = CMP-d0b3695 将grep与perl regex:\K一起使用,是为了给后面带来积极的印象。而[^.]+的意思是,直到看到文字点为止 var=$(command…)这称为命令替换。希望现在垃圾场有用 将grep与perl regex:\K一起使用,是为了给后

只需从上述变量中提取此字符串的一部分

myVar = designers/Atom-CMP-d0b3695.zip
我尝试了几种方法,但仍然找不到解决这个问题的合适方法?任何快速的帮助都是非常有用的

myDesiredVar = CMP-d0b3695
grep
perl regex
\K
一起使用,是为了给后面带来积极的印象。而
[^.]+
的意思是,直到看到文字点为止

var=$(command…)
这称为命令替换。希望现在垃圾场有用

grep
perl regex
\K
一起使用,是为了给后面带来积极的印象。而
[^.]+
的意思是,直到看到文字点为止


var=$(command…)
这称为命令替换。希望现在垃圾场有用

使用
bash
字符串操作:

myVar=designers/Atom-CMP-d0b3695.zip

myDesiredVar=$(echo "$myVar" |grep -oP '\-\K[^.]+')

echo $myDesiredVar
CMP-d0b3695
输出:

s='myVar = designers/Atom-CMP-d0b3695.zip'
r="${s%.*}"
r="${r#*-}"

使用
bash
字符串操作:

myVar=designers/Atom-CMP-d0b3695.zip

myDesiredVar=$(echo "$myVar" |grep -oP '\-\K[^.]+')

echo $myDesiredVar
CMP-d0b3695
输出:

s='myVar = designers/Atom-CMP-d0b3695.zip'
r="${s%.*}"
r="${r#*-}"
sed解决方案:

echo "$r"
CMP-d0b3695
res=$(sed的/^[^-]*-\([^.]*\)./\1/'sed解决方案:

echo "$r"
CMP-d0b3695

res=$(sed的/^[^-]*-\([^.]*\)./\1/'如果可能,请解释您的答案,而不仅仅是在代码中转储。谢谢!如果可能,请解释您的答案,而不仅仅是在代码中转储。谢谢!