Sed命令:搜索字符串&在字符串后替换1个字符

时间:2016-10-17 17:45:44

标签: bash shell sed

我试图在osx / bash的shell脚本中使用6 8 2 3 5 7 11 2 7 1 8 2 8 1 8 2 8 5 命令。我可以使用最简单的命令形式替换sed的某些内容,如下所示

MyFile

其中MyFile内容为sed -i -e 's/abc/123/g' MyFile。上述命令可以很好地将xyzabcdefghijk替换为abc&输出为123

但是,如何修改xyz123defghijk命令以替换sed之后的2个字符以及abc。简单来说,我想在abc&中搜索字符串abc。使用MyFile替换abc + 2之后的12345个字符。

因此,如果MyFile包含abcdefghijk,则输出应包含xyz12345fghijk

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

更改abc以及abc之后的两个字符:

$ sed -e 's/abc../12345/g' MyFile
xyz12345fghijk

在正则表达式中,.匹配任何单个字符。因此,..匹配两个字符,abc..匹配abcabc之后的任意两个字符。

要对原地文件进行更改:

sed -i.bak -e 's/abc../12345/g' MyFile