从 shell 脚本的输出构建 URL

从 shell 脚本的输出构建 URL

在Linux服务器上,我有一个执行curl并返回输出的脚本,如下所示:

脚本:

/usr/bin/curl -k -s https://example.com:18080/seriessnapshot?substringSearch=OpenFin%20Memory | cut --characters=44-51 | sort --unique | sed -e 's/iessnaps//g' -e '/^$/d'

输出:

AP711671
AP714628
AP715911
AP716960
AP717267
AP717938
AP718017
AP718024
AP721570
AP721875
AP722002
AP722622

然后,我需要根据每个 AP 编号的输出构建一个 URL,因此,例如,我需要为每个 AP 编号返回如下输出:

http://apRandomNumber.com:1025/

除了 AP 之外的所有内容都是静态的,URL 中唯一的动态部分是 AP 编号。

是否可以从我用来仅返回 AP 编号的同一脚本中执行此操作,如果可以,我如何将其合并到该脚本中?

答案1

简单易行的方法是将您的sed命令替换为

sed -n -E 's|^AP([[:digit:]]+)$|http://ap\1.ztb.icb.commerzbank.com:1025/|p' 
  • -n抑制行的打印,因此我们可以更好地控制最后实际打印哪些行
  • -E启用扩展正则表达式,使其余部分变得更容易
  • ^AP([[:digit:]]+)$匹配以数字开头并后跟数字的整行AP,它将部分放在()into之间\1。如果您有一个包含多个部分的更复杂的图案,它们将以等()结束。\2
  • 然后将 的值/内容\1直接插入到替换中
  • p最后打印该行(因此它仅打印实际发生替换的那些行)

相关内容