아래에서 sed... 부분에서 test -> 바꾸기 전 문자열
testDone-> 바꿀 문자열 로 하면 됩니다.
--------------------------------------
#!/bin/bash
changeRE()
{
for file in *; do
if [ -d $file ]; then
cd $file
changeRE
cd ..
else
mv $file $file.bak
cat $file.bak|sed 's/test/testDone/g' >$file
rm $file.bak
fi
done
}
if [ $# -ne 1 ]
then
echo "Usage `basename $0` path"
else
cd $1
changeRE
fi
Re: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하죠
아래에서 sed... 부분에서 test -> 바꾸기 전 문자열
testDone-> 바꿀 문자열 로 하면 됩니다.
--------------------------------------
#!/bin/bash
changeRE()
{
for file in *; do
if [ -d $file ]; then
cd $file
changeRE
cd ..
else
mv $file $file.bak
cat $file.bak|sed 's/test/testDone/g' >$file
rm $file.bak
fi
done
}
if [ $# -ne 1 ]
then
echo "Usage `basename $0` path"
else
cd $1
changeRE
fi
Re: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하죠
현재와 하위 디렉토리 모두에서 확장자가 *.c 인 파일내에서(모두면 그냥
*.*)
"aaa" 부분을 "bbb" 로 바꾸기...
#!/bin/sh
find ./ -name '*.c' > temp_joy
for ROTATE in `cat temp_joy`
do
sed -e 's/\"aaa\"/\"bbb\"/' $ROTATE > temp
cp -f temp $ROTATE
done
rm -rf temp
rm -rf temp_joy
주의 반드시 *.c 하시기전에 먼저 한개를 시험삼아 돌려보시든지
아님 백업을 받으세요 잘못하면 ...허걱...
냠냠..
Re: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하죠
rename 을 해주는 프로그램도 있었던 것으로 기억합니다만,
펄 제작자가 만든...
-.-a
Re: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하죠
전 펄 스크립트를 만들어 썼습니다... 드릴까요? -_-a
물론.. 코드를보면 개판이어서 직접만드시는게 좋을듯 하네요.
yootiong wrote..
즉 a라는 디렉토리 안의 파일안에 들어 있는 bbb라는 문자열을 ccc라고 바꾸
고 싶을 땐 어떻게 하죠?
서브 디렉토리 안까지 다 봐꿔야 하는 데 ^^;;
vi로 일일이 찾아가며 변환하기는 파일이 좀 많은 데....
Re: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하죠
# find ./a -type f -exec perl -pi -e 's/bbb/ccc/g' {} \;
yootiong wrote..
즉 a라는 디렉토리 안의 파일안에 들어 있는 bbb라는 문자열을 ccc라고 바꾸
고 싶을 땐 어떻게 하죠?
서브 디렉토리 안까지 다 봐꿔야 하는 데 ^^;;
vi로 일일이 찾아가며 변환하기는 파일이 좀 많은 데....
Re^2: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하
감탄.
Re^2: 디렉토리 내에 있는 모든 파일의 문자열 변환은 어떻게 하
윈도그를 이용하면, ultraedit 같은 에디터를 이용해서
replace in Files 기능을 사용합니다.
정말 막강하죠. 흐흐..
match case, whole word only 등을 사용하면
비슷하게 시작하는 문자들이 바뀔 가능성도 없고,
특히나 regular Expressions 도 지원하는데,
정확히 용법을 몰라서 못쓰고 있죠.
돌 날라 올라.. ~~ 튀자..
댓글 달기