大家好
这是一个新手问题,但我似乎在任何地方都找不到答案。其他函数,如“cut”或“awk”或“sed”,总是被提及,但从来没有使用字符串表达式函数(我认为它被称为)
string="hi this is a string.and.it has no purpose other than being here"
searchstring="and"
temp=${string#*$searchstring} # this means everything after "and" will be inserted into temp
echo $temp = "hi this is a string."
但是假设我想要“and”之前的所有内容,并使用与获取临时变量结果相同的方法,因此我想要
echo $temp = ".it has no purpose other than being here"
我努力了
temp=${string%*$searchstring} (as I understand, # is from front and % is back)
但这只会返回未改变的字符串内容
另外,手册页,这个字符串表达式函数叫什么,我在哪里可以找到更深入的信息?
答案1
您必须将星号放在字符串的另一端。
星号代表“随便”,所以
${string%$searchstring*}
意思是“从现在起删除string
一切searchstring
”。
man bash
这在“参数扩展”中有记录。