2011-02-24 3 views

답변

2

find을 사용하여 파일을 찾는 하위 디렉터리를 탐색 한 다음 sed에 전달하여 텍스트를 검색하고 바꿀 수 있습니다.

find /some/directory -type f -name "*.txt" -print -exec sed -i 's/foo/bar/g' {} \; 

은 모든 txt 파일을 찾아 foo를 바로 바꿉니다.

-i은 sed가 파일을 제자리에서 변경하도록합니다. 변경되기 전에 파일을 백업하려면 sed에 backup-suffix를 제공 할 수도 있습니다.

+0

이 -print''사용할 필요가 없습니다 찾아 당신은'-name' – kurumi

+0

에 대한 잘못된 패턴을 사용하는 당신은 할 수 있습니다 백업 파일 (이 경우'.bak' 확장자)을 만들고 싶다면'-i.bak'을 사용하십시오. – 0xC0000022L

0

당신은 find을 원합니다.

0
for n in $(find | grep txt$) 
do 
    echo $n 
    modify_content.sh $n 
done 
1

GNU

find /some_path -type f -name "*.txt" -exec sed -i 's/foo/bar/g' "{}" +; 
+0

... 및 GNU sed –

관련 문제