我有一个像X1.7_RC02.20170811110948这样的字符串,我只需要增加RC和下一点之间的数字,例如:
原始字符串:
X1.7_RC02.20170811110948
递增字符串:
X1.7_RC03.20170811110948
如何增加 1(或更多此值(?
与 GNU awk 用于匹配 3rd arg 的 ((:
$ awk 'match($0,/(.*RC)([^.]+)(.*)/,a){$0=sprintf("%s%02d%s",a[1],a[2]+1,a[3])} 1' file
X1.7_RC03.20170811110948
withGNU
sed
sed -r 's/(.*)(RC0?)([1-9]+)(..*)/echo "12$((3+1))4"/e' <<<X1.7_RC02.20170811110948
考虑到您的数据与所示示例相同,那么也请尝试遵循一次awk,并让我知道这是否对您有帮助。
awk '{val=$0;gsub(/.*RC|..*/,"",val);val=sprintf("%02d",++val);sub(/RC[0-2]+/,"RC"val);print}' Input_file
或者,如果你有一个字符串,那么你可以打印它的值,并可以在命令上运行,如下所示:
echo "$var" | awk '{val=$0;gsub(/.*RC|..*/,"",val);val=sprintf("%02d",++val);sub(/RC[0-2]+/,"RC"val);print}'
awk 解决方案:
初始字符串:
s="X1.7_RC02.20170811110948"
awk 'BEGIN{ FS=OFS="_RC"}{ n=substr($2,1,2); print $1,sprintf("%02.f",n+1) substr($2,3)}' <<< $s
输出:
X1.7_RC03.20170811110948