2017-11-30 10 views
1

다른 폴더에 다른 파일의 공통 줄이 있습니다. 어떻게하면 그 줄을 다른 줄로 바꿀 수 있습니까? shell script sed 명령을 사용하여 폴더의 모든 파일에?다른 폴더에있는 파일의 줄 바꾸기 셸 스크립트

예 : t = "/ 홈/file.txt를"폴더 같은 줄에있는 파일 중 하나 존재 differnt 한 폴더

의 다른 파일에 내가 t로 교체 한 것입니다 = "/ desk/file1.txt". 그렇다면 폴더 외부에서 sed 명령을 실행할 수 있습니까?

+0

가능한 중복 사용 파일을 리눅스 명령 줄] (https://stackoverflow.com/questions/11392478/how-to-replace-a-string-in-multiple-files-in-linux-command-line) – LuFFy

+1

StackOverflow에 오신 것을 환영합니다! 이렇게 할 수있는 몇 가지 방법이 있지만 StackOverflow는 자신의 코드를 수정하는 데 도움이됩니다. 우리는 무료 컨설팅 및 코딩 서비스가 아닙니다. 자신의 문제를 해결하려고 노력하십시오. 어려움에 처했을 때, 질문을 할 때입니다. 귀하의 시도와 결과를 귀하의 질문에 추가하십시오. 그래야만 우리가 어디서 잘못되었는지 파악할 수 있습니다. – ghoti

답변

0
find . -type f -exec sed -i 's/strng1/string2/g' {} + 

는 문자열 1 문자열 2로 대체한다. 현재 디렉토리와 모든 서브 디렉토리의 모든 파일을 대체합니다. 당신이 GNU 및 BSD/맥 모두 와 함께이 일을하려면 당신은 상위 디렉토리

에서이 스크립트를 실행하는 데 필요한 여러 문자열을 대체하는 방법 [이

find . -type f -exec sed -i.bak 's/strng1/string2/g' {} + 
+0

내가 이것을 시도했을 때 입력 (>)을 요구하고있다. 그것은 실행되지 않습니다 .please help – pavan

+0

'sed '에 대한'-i' 옵션의 사용은 GNU sed에서 작동합니다 (Linux에서는 공통적이지만 다른 변형 (* BSD, macOS, Solaris 등)에서는 작동하지 않습니다. 플랫폼 별 문제는 아니지만 솔루션이 혼란을 줄이려면 문제를 지적하는 것이 좋습니다. 또는 더 나은 방법은 휴대용 솔루션을 제안하는 것입니다. – ghoti

+0

@ ghoti,이 정보를 제공해 주셔서 감사합니다. –