用sed替换2点之间的字符串
我的文件包含如下行:用sed替换2点之间的字符串,sed,Sed,我的文件包含如下行: level0.1.level1.1.level1 level0.1.level1.2.level2 我想用“{I}”替换“.x.” 因此,所需的行如下所示 level0.{i}.level1.{i}.level1 level0.{i}.level1.{i}.level2 当我们查找“.x.”时,表示“.”后跟任何字符 后跟“.”,sed的搜索模式为 “\..\”,因为我们需要用“\”来逃避“.”。 找到匹配项后,将其替换为“{i}” 结尾的“/g”表示有多个这样的替换
level0.1.level1.1.level1
level0.1.level1.2.level2
我想用“{I}”替换“.x.”
因此,所需的行如下所示
level0.{i}.level1.{i}.level1
level0.{i}.level1.{i}.level2
当我们查找“.x.”时,表示“.”后跟任何字符
后跟“.”,sed的搜索模式为
“\..\”,因为我们需要用“\”来逃避“.”。
找到匹配项后,将其替换为“{i}”
结尾的“/g”表示有多个这样的替换
cat file | sed 's/\..\./.{i}./g'
使用sed
sed -r 's/[.][0-9]+[.]/.{i}./g'
碰撞试验
echo 'level0.1.level1.2.level2'|sed -r 's/[.][0-9]+[.]/.{i}./g'
输出
level0.{i}.level1.{i}.level2
在{}里面漏掉了一个“i”。感谢您的俱乐部请为您的代码片段提供一个简短的解释,以捕获所有
.x.
模式(包括那些相邻的模式)使用::a;sed's/\..\./.{i}./g;ta'文件
。注意:第二个
是第一个邻接项。“您是否用文件测试过它?结果将是相同的..命令行使用sed-r的/[.][0-9]+[.]/.{i}./g'文件..:D