2013-08-13 4 views
0

와 경기 후 라인의 첫 번째 슬래시를 대체하는 SED :내가 파일에 다음 한 문자열 그래서

/icon.png 
/my/path/tester/icon.png 
/logo.png 
/my/path/tester/logo.png 

내가/''테스터 '를 포함하고 추가하지 않는 모든 라인을 대체 할 내 떠나 처음으로/경로/테스터/'... :

/my/path/tester/icon.png 
/my/path/tester/icon.png 
/my/path/tester/logo.png 
/my/path/tester/logo.png 

는 또한 나오지 사용 장소에 파일을 편집하는 것을 선호합니다.

미리 감사드립니다.

답변

2

당신이 -i 옵션을 지원하는 sed 경우 (예를 들어, GNU는-나오지도)이 당신을 위해 무엇을 물어 않지만, 강력한하지

sed -i '/tester/[email protected]^@/my/path/[email protected]' file 

하는 것으로. 'tester'가 아닌 '/ tester /'와 일치하지 않는 행으로 바꾸기를 원할 것입니다. -i 옵션에는 아무런 의미가 없습니다 (sed edit file in place 참조). -i을 사용하면 임시 파일을 난독 화합니다. 어떤 이유로 사람들은 종종 -i을 사용하여 피하고 싶지 않고 생각하지 않습니다.

+0

고마워요! cmd 라인에서 완벽하게 작동하지만 스크립트 내에서 : unterminated's '명령을 던집니다. 이견있는 사람? – user2274114

+1

스크립트 내에서 잘못된 인용 부호가 사용되었거나 스크립트가 다른 기호를 생성하는 데 사용되며 '@@'은 특별한 의미가 있습니다 (예 : @ ... @는 텍스트 대체를 나타냄). 그렇지 않으면 스크립트에 대한 자세한 내용이 필요합니다. 다른 구분 기호를 사용해보십시오. (예 : @를! 또는 다른 것으로 바꾸십시오) –