在bash中的数字和点之后添加一个字符

Sha*_*uan 6 bash shell awk sed

我想通过\在任何数字和它之前的点之间添加来修改我的变量,到目前为止我只设法\在第一个数字和第一个点之后添加。

我的脚本:

branch="3.2.5"
firstbranch=$(echo $branch | sed -r 's/([0-9]+.)(.)/\1\\2/g') && echo $firstbranch
Run Code Online (Sandbox Code Playgroud)

它生成的输出:

3.\2.5
Run Code Online (Sandbox Code Playgroud)

和所需的输出:

3.\2.\5
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 6

您可以使用:

sed 's/[0-9]\./&\\/g' <<< "$branch"
Run Code Online (Sandbox Code Playgroud)
3.\2.\5
Run Code Online (Sandbox Code Playgroud)


Rav*_*h13 5

如果您没有问题awk,你可以请尝试以下,以书面的链接,并与出样品测试https://ideone.com/T1suTg

echo "$branch" | awk 'BEGIN{FS=".";OFS=".\\"} {$1=$1} 1'
Run Code Online (Sandbox Code Playgroud)

说明:打印 shell 变量branchecho并将其输出作为标准输入发送给awk命令。在awk程序BEGIN块中将字段分隔符设置为.并将输出字段分隔符设置.\\为实际上是.\然后在主程序中将第一个字段重新设置为自身,以便应用输出字段分隔符的新值。1将打印当前行的值。