2014-04-10 8 views
0

은 내가 예를 들어 다음이 포함 된 JSON 파일이 있습니다배쉬 나오지 문자열 대체 오류

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

Windows에서 자식의 bash를 사용하고 내가 ./images.images을 대체하려고 나오지. 나는 sed -i 's/.images/.\/images/g' filename.json을 사용하는 것을 생각했지만 그 일을 할 때 "이미지"의 첫 번째 인스턴스를 선택하고 바꿉니다. 왜 그런가요? 내 sed 명령을 어떻게 수정해야합니까? Thx

+0

은'.'. – devnull

+0

'.'은 정규식 메타 문자이므로 패턴 문자열에서 이스케이프 처리해야합니다 – devnull

답변

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" 
], 
탈출