2010-01-14 3 views
2

나는 파일 경로에 대해 greps를 작성하고 있습니다. grep의 출력을 사용하여 이전 파일 경로의 각 인스턴스를 새 파일 경로로 바꿀 수 있기를 원합니다.grep 및 sed - 문자열의 모든 인스턴스를 바꿉니다.

예 :

grep -R "/~test/dev/portal" . 내가 함께 "/ ~ 테스트는/dev/포털 /"의 각 인스턴스를 대체 할 나오지에이 출력 파이프 할 수 있도록하려면

"/ 응용 프로그램/포털 /"(명심하십시오. grep의 출력은 일반적으로 하나 이상의 파일입니다.)

미리 감사드립니다!

+0

이러한 종류의 대답은 ServerFault에서 확인하십시오. –

답변

6
grep -ZlR "/~test/dev/portal" . | xargs -0 -l1 sed -i 's:/~test/dev/portal/:/apps/portal/:g' 
+0

환상적입니다. 고마워요! – hellopat

+1

'grep -Z | xargs -0' 경우에만 –

+0

데니스, 좋은 논쟁! 나는 이것들을 사용하는 것에 대해서 생각조차하지 못했다 (나는 더 많은 man 페이지를 연구해야만한다). 'grep -ZlR "/ ~ test/dev/portal"을 입력하십시오. | xargs -0 -l1 sed -i :/~ 테스트/dev/portal/:/apps/portal/: g'' –

관련 문제