Bash sed字符串替换错误

时间:2014-04-10 09:04:05

标签: regex json bash sed git-bash

我有一个json文件,其中包含以下内容:

"images": [
    ".images/phones/motorola-xoom.0.jpg", 
    ".images/phones/motorola-xoom.1.jpg", 
    ".images/phones/motorola-xoom.2.jpg"
],

在Windows上使用git bash和sed我试图用.images替换./images。 我想过使用sed -i 's/.images/.\/images/g' filename.json但是当这样做时,sed会选择并替换" images"的第一个实例。同样。为什么这样,我应该如何修改文件我的sed命令? THX

1 个答案:

答案 0 :(得分:1)

逃离点.。由于.表示"任何",您必须将其转义为仅.

$ sed 's/\.images/.\/images/g' file
"images": [
    "./images/phones/motorola-xoom.0.jpg", 
    "./images/phones/motorola-xoom.1.jpg", 
    "./images/phones/motorola-xoom.2.jpg"
],