linux – UNIX从变量中删除字符
发布时间:2020-12-13 23:52:16 所属栏目:Linux 来源:网络整理
导读:我想从输入字符串中删除最后4个字符串,然后在sed命令中使用它.但我不能让它正常工作 newversion是一个输入参数,它设置为:5.5.5-dev. 我想从输入参数中删除-dev. 我尝试过的: version=${$newversion::-4}sed -i "s|(some name i defined/$imagename:)([^
我想从输入字符串中删除最后4个字符串,然后在sed命令中使用它.但我不能让它正常工作
newversion是一个输入参数,它设置为:5.5.5-dev. 我尝试过的: version=${$newversion::-4} sed -i "s|(<<some name i defined>>/$imagename:)([^n]*)|1$version|" docker-compose.yml 错误: 糟糕的替代 解决方法
sed对于这个问题来说太过分了.要从任何POSIX shell中的字符串末尾删除-dev,请使用
version=${newversion%-dev} 或更一般地说 version=${newversion%-???} # Remove the final - and the next 3 characters 甚至 version=${newversion%-*} # Remove the final - and anything after it. 如果你使用bash(你似乎不是),你的第一次尝试就是关闭;你只需要额外的$.它应该是 version=${newversion::-4} 虽然该位置的负值需要bash 4.在bash 3中,您需要使用字符串的长度来计算值: version=${newversion::${#newversion}-4} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |