在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
最后打印该行(因此它仅打印实际发生替换的那些行)