IT story

디렉토리 및 서브 디렉토리에서 sed로 찾기 및 바꾸기

hot-time 2020. 4. 22. 08:13
반응형

디렉토리 및 서브 디렉토리에서 sed로 찾기 및 바꾸기


이 명령을 실행하여 내 사이트 루트의 모든 파일에서 모든 'apple'을 찾아 'orange'로 바꿉니다.

find ./ -exec sed -i 's/apple/orange/g' {} \;

그러나 하위 디렉토리를 거치지 않습니다.

이 명령에 어떤 문제가 있습니까?

다음은 몇 줄의 출력입니다 find ./.

./index.php
./header.php
./fpd
./fpd/font
./fpd/font/desktop.ini
./fpd/font/courier.php
./fpd/font/symbol.php

sed에 디렉토리 이름을 보내지 않으려면 다음과 같이 찾으십시오.

find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \;

더 큰 s & r 작업의 경우 grep 및 xargs를 사용하는 것이 더 좋고 빠릅니다.

grep -rl 'apples' /dir_to_search_under | xargs sed -i 's/apples/oranges/g'

이것은 나를 위해 일했다 :

find ./ -type f -exec sed -i '' 's#NEEDLE#REPLACEMENT#' *.php {} \;

grep -e apple your_site_root/**/*.* -s -l | xargs sed -i "" "s|apple|orage|"

한 줄 간단한 명령 으로이 작업을 수행 할 수 있다고 생각합니다.

for i in `grep -rl eth0 . 2> /dev/null`; do sed -i ‘s/eth0/eth1/’ $i; done

페이지를 참조하십시오 .


linuxOS에서 :

sed -i 's/textSerch/textReplace/g' namefile

"sed"가 작동하지 않으면 다음을 시도하십시오.

perl -i -pe 's/textSerch/textReplace/g' namefile

참고 URL : https://stackoverflow.com/questions/6758963/find-and-replace-with-sed-in-directory-and-sub-directories

반응형