获取字符串的部分,然后更新它



我有这个字符串

blah --arg1 --arg2 --etc doh

有时doh以斜杠结尾,有时不是。

我需要提取doh并分配给一个变量

然后用/some/path/doh替换

我不会把我的尝试放在这里,它们太难看了。

---更新---

mm,不确定我是否理解答案,对不起。

最后一个字符串应该是:

blah --arg1 --arg2 --etc /some/path/doh

以及分配给var的doh,比如foo

有点难看,但正在工作

首先要消除最后的斜线:

$ str='blah --arg1 --arg2 --etc doh///'
$ str=$(shopt -s extglob; echo "${str%%+(/)}")
$ echo $str
blah --arg1 --arg2 --etc doh

下一次提取doh

$ var=${str##* }
$ echo $var
doh

最后将其从字符串中删除并添加回前缀为/some/path

$ echo "${str%"$var"} /some/path/$var"
blah --arg1 --arg2 --etc  /some/path/doh

假设您使用类似getopts的东西来解析选项,它只是

echo "/some/path/$1"

如果字符串不是命令行参数:

VAR="blah --arg1 --arg2 --etc doh"
LAST=`echo $VAR | awk -F" " '{ print $NF }'`
echo "/some/path/$LAST"

如果它真的是来自脚本的参数,看看三元组写了什么。

如果不是:

echo "/some/path/$(echo "$STRING" | awk '{print $NF}')"

相关内容

  • 没有找到相关文章

最新更新