Shell脚本将字符串转换为另一种形式

时间:2018-08-25 20:12:42

标签: shell

我想将字符串从一种形式转换为另一种形式,例如 输入:

localhost -> ABC-NPCCache-Resource-Provisioning 2.3.1.1

输出

ABC-NPCCache-Resource-Provisioning-2.3.1.1.tar.gz

我尝试了很多,但是无法在shell脚本中找到短途之路

2 个答案:

答案 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