| 559 번 글의 답장글: Re: [질문]sed에 관하여 |
| 글쓴이: 산이
[홈페이지]
|
글쓴날: 2001년 03월 15일 16:23:30 목(오후) |
조회: 1155 |
[김형달]님이 남기신 글:
>안녕하세요
>딴게 아니라 또 일을 하다 보니 어려운점이 있어서
>질문을 드립니다.
>지금 할려는 일이
>특정 폴더에 있는 .java로 끝나는 화일에서
>http://11.22.33.44를
http://123.234.532.123이런씩으로
ip주소를 바꾸어 주어야 합니다.
>.java화일은 특정폴더 밑에 또 폴더가 있고 또 폴더가 있고
여러개 입니다.
>a/b/c/d
> /c/d/e
> /d/e/r/f
> /k/l/m
>이런씩으로 a폴더 밑에 여러개의 폴더가 있고 이폴더에
.java화일이 있습니다.
>물론 모든 폴더에 다 있는게 아니고 .java가 없는 폴더도 있을수
있고
>.java안에 전부다 http://11.22.33.44라는
문자열이 있는것도 아닙니다.
>일부분만 있는거죠.
>
>저는
>sed 's/11\.22\.33\.44/123\.234\.532\.123/' *.java
>이런 씩으로 했는데요
>
>이게 화면에는 바꾸어지는것 처럼 보여지지만 실제로는
변경은 안되더라구요..
>책을 읽어보니 파일을 편집하고 싶으면 쉘랩퍼를 작성해서
표준출력을 원래의 화일로 다시 써 주어야 한다는데
>이게 무슨 말인지 모르겠습니다.
>
>그리고 이거는 한 디렉토리에서 되는데 여러 디렉토리에서
할려면 어떻게 하죠?
>
>또 쉘스트립트에서요
>#!/bin/sh
>for f in *.java
> sed 's/11\.22\.33\.44/123\.234\.532\.123/' $f > $f.dalnim
>done
>
>이런씩으로 화일을 바꿀려고 할때
>이문장을 현재 디렉토리만 돌아 가잖아요..
>이것을 하위디레토리로
포함해서 돌릴수는 없을까요?
>
>감사합니다.
>빨리 답변얻을수 있으면 감사하겠구요.
>
>안녕히 계세요.
========================================
#!/bin/sh
for f in `find $(pwd) -name "*.java" -print` ; do
sed 's/11\.22\.33\.44/123\.234\.532\.123/' $f > $f.dalnim
echo $f.dalnim
done
exit 0
-----------------------------------------
또는
#!/bin/sh
echo -n "작업할 디렉토리를 입력하세요 : "
read workdir
if [ -d $workdir ] ; then
for f in `find $(pwd) \( -name "*.java" -a -type f \) -print` ; do
sed 's/11\.22\.33\.44/123\.234\.532\.123/' $f > $f.dalnim
echo $f
done
else
echo "${workdir}은 존재하지 않습니다."
fi
exit 0
------------------------------------------
|
이전글 : [질문]sed에 관하여
다음글 : 외부로 ping이 되지 않을때 어떡하죠?
|
from 211.35.159.131
JS(Redhands)Board 0.4 +@
|