이 블로그 검색

2013년 5월 27일 월요일

유닉스 대용량 파일 읽기

특정파일을 아래로부터 특정행 까지 읽기
   tail -1500000 catalina.out | more

grep -n filename  : 파일내에서 찾는 문자열을 라인위치를 포함하여 보여준다
 
wc -l   filename   : 파일의 전체 라인수를 표시한다.
 
head -n filename  : 파일내에서 1라인부터 n라인 만큼을 잘라서 화면에 출력한다.
 
tail -n filename  : 파일내에서 마지막라인부터 n라인 만큼을 잘라서 화면에 출력한다.
 
cat filename | more 파일명의 내용을 페이지 별로 보여준다.(vi 명령 사용가능 : j k l h ^f ^b /(find next) ?(find previous) )
 
예)  grep -n 문자열 파일 : 문자열이 존재하는 행을 찾는다.
 
      wc -l 문자열파일 : 파일의 마지막 행수를 찾는다.
 
      tail -n 로그파일명 :  찾은 문자열근처의 행을 적당히 아래쪽부터 자른다.
 
      tail -n 로그파일명 | head -1000 :  출력되는 행의 일부를 표시한다.

유닉스 문자열 검색

※출처 : [리눅스나라]
[unix.com]


- 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 한 줄과 이름을 보여준다.
find . -name "*.txt" | xargs grep 홍길동

- 이 때 검색어로 사용된 문자열은 색을 달리하여 표시하고 싶다면
find . -name "*.txt" | xargs grep --color=auto 홍길동

 - 검색어의 위치(줄번호)를 같이 표기하고 싶다면

find . -name "*.txt" | xargs grep -n 홍길동

- 대소문자를 구분하고 싶지 않다면
find . -name "*.txt" | xargs grep -i LgMobile
즉, LGMobile, LGMOBILE, lgMobile을 가리지 않고 찾는다.

- 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 이름만 보고 싶다면
find . -name "*.txt" | xargs grep -l 홍길동

- 검색 결과에 다음과 같은 메시지가 포함된다면
grep: [특정경로]: No such file or directory

2>/dev/null 을 추가하면 해당 메시지를 표시하지 않고 찾은 결과만 볼 수 있다. 즉,
find . | xargs grep 2>/dev/null 홍길동

- 모든 옵션은 함께 사용 가능하다.
find . -name "*.txt" | xargs grep --color=auto -n 2>/dev/null 홍길동

파이썬



파일로 저장하여 실행시 한글 인코딩 문제
   소스 상단에 "# -*- coding: ms949 -*-"를 삽입

Python 종료 : Ctrl+Z