iWiz ShareBase

IT Specialist 윤태현의 iWiz ShareBase는 IT뿐 아니라 각종 잡다한 지식들을 함께 나누는 지식공유 커뮤니티입니다.

iWiz,ShareBase,윤태현,Java,JSP,EJB,IT,정보기술,웹프로그래밍,PHP,ASP,DBMS,MySQL,서버,네트워크,server,network,WAS,웹애플리케이션,블로그,blog,웹서버,DB,오라클,oracle,mysql,JRun,웹로직,톰캣,tomcat,아파치,자동차,EF쏘나타,로또 6/45

갤러리 Pixelgrapher.com | 로또 6/45 번호생성 및 통계 데이터 | 전체기사보기 | 전체글 #1 | 전체글 #2 | 전체글 #3 | 전체글 #4 | 전체글 #5 | 전체글 #6 | 전체글 #7 | 전체글 #8 | 전체글 #9 | 전체글 #10 |
HOME iWiz
ShareBase
Remember 0523 & 0818
지식은 나눌수록 커집니다 - iWiz's ShareBase
System/OS/Server 시스템이나 서버, 운영체제 등의 구축, 운영에 관련된 자료입니다.


   이준호(2004-06-10 09:15:40, Hit : 7830, Vote : 25

리눅스에서 grep 명령어를 유용하게 이용하는 방법


아침이라 놀러왔다 심심해서 적어봅니다.

프로젝트 진행시에 다른 사람이 짠 소스를 넘겨 받다보면 종종 이 소스에 특정 코드가 여기저기 뿌려진 것은 아닌지 궁금하게 됩니다.

예를 들어 mysql_connect 같은 함수가 한 모듈이 아닌 이곳 저곳 쓰였다면 죽음입니다. -_-;

이때 현재 디렉토리 하위에 있는 모든 소스안에 mysql_connect가 어디에 적혀있는지 알고 싶다면, 다음과 같은 명령어로 검색합니다.

SHELL] grep 'mysql_connect' * -r

그러면 파일명과 해당 파일의 mysql_connect 가 속한 라인의 코드가 줄줄이 나오게 됩니다.

그러면 이 소스들이 mysql 연결 설정을 얼마나 난발했는지 알 수 있습니다.

기타 다른 용도로도 되게 많이 쓰입니다.

한가지 팁을 더 추가하자면, 위의 명령어로 찾긴 찾았는데, 코드가 엄청 많아 버리면, 일일이 열어서 고치는데 신경질이 납니다.

그래서 꽁수로 다음과 같은 perl 명령어를 이용합니다.

SHELL] perl -p -i -e 's/title.htm/title.php/g' *.htm

위의 명령어는 현재 폴더의 모든 *.htm 파일에 있는 title.htm 이라는 문자열을 title.php로 치환해주는 역할을 합니다.

단 이것은 현재 ./ 경로에 있는 *.htm 파일만 처리할뿐이지, ./include/*.htm 같이 한단계 더 아래의 폴더에 있는 파일들을 치환해 주지는 않습니다.

제가 perl을 못하는 관계로 다음과 같은 노가대를 합니다. -_-;

SHELL] perl -p -i -e 's/title.htm/title.php/g' */*.htm
SHELL] perl -p -i -e 's/title.htm/title.php/g' */*/*.htm
SHELL] perl -p -i -e 's/title.htm/title.php/g' */*/*/*.htm
SHELL] perl -p -i -e 's/title.htm/title.php/g' */*/*/*/*.htm
..
..

위의 두 명령어만 잘 이용한다면 노가다 작업을 많이 줄일 수 있습니다. ^_^





이준호
(2004-06-10 09:17:16)
앗 제로보드 이런....
위의 작은 따옴표랑 역슬래쉬 앞에 역슬래쉬가 하니씩 붙어버리는군요.
읽으실때 유의하시기 바랍니다.
이럴땐 PHPBB가 좋군요. : )
이준호
(2004-06-10 09:24:53)
위의 역슬래쉬를 보니 한가지 더 적어 봅니다.

위의 경우에는 php.ini 의 globa 설정이 on으로 되있는것 같습니다.

그래서 아마(?) write 처리 하는 페이지에서 addslahses 로 한번 그리고, php 자체에서 한번 해서 역슬

래쉬가 두번 붙어 버리는 것 같습니다.

이럴때 php.ini에 상관없이 문자열 처리를 하려면 다음과 같이 하시면 됩니다.

<?
/* php.ini 에 global 옵션이 off로 되어있으면 문자열처리를 해준다. */
if (get_magic_quotes_gpc() == 0) {
$postvalue = mysql_escape_string($postvalue);
}
?>

사소하지만 간단한 팁이었습니당.
이준호
(2004-06-10 09:34:41)
앗 이미 잘 설명해 놓으셨군요 -_-;

target=_blank>http://www.iwiz.pe.kr/bbs/zboard.php?id=webdev&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=9


여기에 하나 덧붙여서 중요한게 하나 있습니다.

get_magic_quotes_gpc() 는 함수안에 들어가면 동작이 안되더군요. (왜 그러는지 정확히는 아직 안 찾아봤습니다.)

예를 들어

function strhandling($str) {
if (get_magic_quotes_gpc() == 0)
$postvalue = mysql_escape_string($postvalue);
..
..
그외에 처리 ..

return $str;
}

라고 쓰면 get_magic_quotes_gpc() 는 항상 0을 반환합니다.

==============================================================================

ps. 제가 잘못 알고 있는 것이 있을 수도 있으니, 틀린부분은 지적하여 주시기 바랍니다. : )
iWiz (2004-06-10 16:45:32)  
그렇죠... PHP 기능중에서 magic_quotes_gpc 기능은 정말루 맘에 안드네요. 아예 끄고 싶지만... 호스팅을 받기 때문에 함부러 건드릴 수가 없네요. 제로보드를 수정하자니 귀차니즘이 앞서고...
현정이
(2004-06-16 13:57:20)
앗 안녕 준호야~
(내가 아는 준호가 맞겠지? ^^;)


26   솔라리스 VS 리눅스의 대결  iWiz 2005/01/27 4784 3
  리눅스에서 grep 명령어를 유용하게 이용하는 방법 [5]  이준호 2004/06/10 7830 25
24   쉘스크립트에서 변수간 값 비교 연산자  iWiz 2004/04/07 32968 27
23   서비스별 접속 IP 리스트 모니터링  iWiz 2004/02/26 5919 21
22   보안관련 PDF 문서 파일  iWiz 2004/01/04 5524 22
21   MS Windows 20000 Internet Connector Licensing FAQ  iWiz 2004/01/04 5611 17
20   리눅스에서 부팅시 자동으로 데몬을 띄우는 법  iWiz 2004/01/04 7002 25
19   Windows에서 사용가능한 리눅스 GNU 유틸리티  iWiz 2004/01/04 4249 17
18   J2SDK + JRun + Apache 설치 및 연동  iWiz 2004/01/04 7007 24
17   APM 설치 방법  iWiz 2004/01/04 4562 23
16   아파치 관련 자질구레한 팁들  iWiz 2004/01/04 4199 17
15   Apache의 P3P 관련 헤더 설정  iWiz 2004/01/04 7049 26
14   쉘 파이프 & 리다이렉션  iWiz 2004/01/04 7802 25
13   리눅스에서 새 디스크 추가하기  iWiz 2004/01/04 4352 24
12   소규모 네트워크에서 Reverse Zone 설정  iWiz 2004/01/04 7031 31

1 [2]
 

Copyright 1999-2024 Zeroboard / skin by zero
iWiz ShareBase, ⓒCopyleft by iWiz.  For more information contact .
본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시에는 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다. [게시일 2004. 1. 31]