gpt4 book ai didi

linux - 使用 sed 命令忽略包含\和多个空格的变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:17 28 4
gpt4 key购买 nike

我有两个变量,

first= new pool ser/@10.25.89.322 
second=ESX_10.2.3.4@10.52.33.21

我想用新池 ser/@10.25.89.322 替换 ESX_10.2.3.4@10.52.33.21 并且还想删除新单词前的空格。

我试过,

sed -i -e "s/${second}/"${first//\\/\\\\}"/g"

sed -i -e "s/${second}/"${first//\\[ ]*/\\\\}"/g"
sed -i -e "s/${second}/"${first//\\ */ *\\\\}"/g"

我不想删除空格,只想按原样替换(“new”之前的空格除外)。

最佳答案

试试这个:

sed -i "/${second}/ {s:${second}:${first//\\/\\\\}:g ; s/ new /new /}"

它正在删除替换后行中第一次出现的 new 中的 space

此外,在下面的测试中,添加了双引号:

$ first=" new pool ser/@10.25.89.322" 
$ second=ESX_10.2.3.4@10.52.33.21
$ sed -i "/${second}/ {s:${second}:${first//\\/\\\\}:g ; s/ new /new /}" mytestfile.txt

关于linux - 使用 sed 命令忽略包含\和多个空格的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37919365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com