我有一个看起来像这样的变量:
asgname='Company-DEV-API-65-ServerAutoScalingGroup-122MJNZLAAKW4 Company-DEV-API-68-ServerAutoScalingGroup-1SFNH4CSKKWA4'
我想更新最新的AutoScaling组,在本例中为68。
asg名称用空格分隔。
如何捕获包含较大数字的完整asg名称?
答案 0 :(得分:1)
使用bash和GNU排序:
Company-DEV-API-
输出:
Company-DEV-API-68-ServerAutoScalingGroup-1SFNH4CSKKWA4
我假设所有字符串都以pytesseract
开头。
答案 1 :(得分:0)
在这里帮忙。
echo "$asgname" | awk -F"-" '{len=$4>len?$4:(len?len:$4)} END{print len}'
输出为68
。
说明: 打印名为asgname
的变量,其上带有"
(双引号)。现在使用|
(管道)将其标准输出作为标准输入发送到awk
命令。在awk
命令中,我将字段分隔符设为-
(短划线)。在awk
的主体结构里面我正在创建一个变量len,其值为4美元(你有数字)现在每次将它的值与它自己的值进行比较时它会替换它自己的值,如果它的值小于目前的4美元价值。所以最后我们终于得到了它的最高价值。所以在awk的END部分打印变量len的值。
编辑: 刚看到编辑问题。如果您的变量中有空格,那么您可以对上面的代码进行微小的更改,并且可以获得如下所需的结果。
echo "$asgname" | awk -v RS=" " -F"-" '{len=$4>len?$4:(len?len:$4)} END{print len}'