我想将字符串从一种形式转换为另一种形式,例如 输入:
localhost -> ABC-NPCCache-Resource-Provisioning 2.3.1.1
输出
ABC-NPCCache-Resource-Provisioning-2.3.1.1.tar.gz
我尝试了很多,但是无法在shell脚本中找到短途之路
答案 0 :(得分:0)
这种sed单线可能会帮到您
sed 's/.*-> //;s/ /-/;s/$/.tar.gz/'
以您的示例为例:
kent$ sed 's/.*-> //;s/ /-/;s/$/.tar.gz/'<<<'localhost -> ABC-NPCCache-Resource-Provisioning 2.3.1.1'
ABC-NPCCache-Resource-Provisioning-2.3.1.1.tar.gz
或使用awk:
awk -F' -> ' '{gsub(/ /,"-",$2);$0=$2".tar.gz"}7'
答案 1 :(得分:0)
@Provides
会记住一个匹配的字符串(多个字符,一个空格),并显示如下:
sed