LINUX
2006.02.06 09:34

UNIX COMMAND (5) : grep, sed, awk 등

조회 수 21370 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
UNIX COMMAND (5) : grep, sed, awk 등
 
 
▒ grep : 패턴을 이용한 search => regular expression을 잘 만드는 것이 필요하다.
 
  grep option(s) pattern filename(s)
 
OS/tdir] grep -n dba /etc/group           # -n : 파일 안에서의 패턴이 발견된 라인 및 라인 번호
OS/tdir] grep -v dba /etc/group           # -v  : 패턴이 발견되지 않은 라인
OS/tdir] grep -n dba /etc/group /etc/passwd          # 파일을 여러개 나열...
OS/tdir] grep -i the ~/tdir/*                 # -i : 대소구분 무시(ignore) => the 대소구분 없이
OS/tdir] grep -li the ~/tdir/*                 # -l : 패턴이 들어있는 파일 이름만... 
OS/tdir] grep -c the ~/tdir/*                 # -c : 패턴이 들어있는 라인 번호만...
 
[패턴을 좀더 정교하게 표현하려면 regular expression을 사용해야 한다]
 
^      : ^패턴            : 패턴으로 시작하는 모든 라인 찾기
$      : 패턴$           : 패턴으로 끝나는 모든 라인 찾기
.       : d...              : d로 시작하는 4자리 character 찾기
*      : [a-d]*          : a, b, c, d로 시작하는 character 찾기
[]    : [Dd]atabase  : Database 또는 database 찾기
[^]   : [^D]             : D가 나타나지 않는 라인 찾기
 
OS/tdir] grep -i ^the ~/tdir/*              # the로 시작하는 라인 찾기
OS/tdir] grep -i meal.$ ~/tdir/*          # meal.으로 끝나는 라인 찾기
OS/tdir] grep c...d ~/tdir/*                # c로 시작하고 d로 끝나는 5자리 character 찾기
 
========================================================================================
 
▒  egrep(expression grep) : searches  files  for  a pattern of characters
                                           and prints all lines that contain that pattern.
 
OS/tdir] egrep '(a|A)d+' /etc/passwd   # ad 또는 Ad가 포함된 라인 찾기
OS/tdir] vi grep_test                               # 아래 내용을 추가하세요... 붙여넣기... ^^
An Oracle database is a collection of data treated as a unit.
The purpose of a database is to store and retrieve related information.
A database server is the key to solving the problems of information management.
 
OS/tdir] egrep 'Oracle|purpose' grep_test   # Oracle 또는 purpose가 포함된 라인 찾기
 
========================================================================================
 
sed : stream editor => file을 열지 않고 data를 편집하는 기능
 
  sed [-options] [address] command file... [>newfile]
 
# sed '/pattern/d' filename       # file에서 패턴이 포함된 라인을 지우고 그 결과를 화면에 표시
                                                # 원본 파일에는 아무런 변화가 없다.
OS/tdir] cp grep_test sed_test
OS/tdir] cat sed_test
OS/tdir] sed '/purpose/d' sed_test                  # purpose 라는 단어가 들어간 라인 삭제
 
# sed '#d' filename      : # 라인만 삭제
# sed '$d' filename      : 마지막 라인 삭제 
# sed '#,$d' filename   : # 라인부터 마지막 라인까지 지우기
# sed '#,#d' filename   : # 라인부터 # 라인까지 지우기
 
OS/tdir] sed '1d' sed_test     # 1 라인만 삭제
OS/tdir] sed '$d' sed_test     # 마지막 라인만 삭제
 
OS/tdir] sed '/purpose/d' sed_test > set_out     # sed 처리 결과를 sed_out 으로 저장
OS/tdir] cat set_out
 
OS/tdir] sed '/purpose/p' sed_test             # 패턴이 포함된 라인이 두번 출력(print)된다. 
OS/tdir] sed -n '/purpose/p' sed_test        # 패턴이 포함된 라인만 출력된다.
 
OS/tdir] sed 's/$/  Oracle/' sed_test       # 각 라인의 마지막에 원하는 글자 추가
 
OS/tdir] sed 's/  */#/g' sed_test              # space를 찾아서 #기호로 변환한다.
OS/tdir] sed 's/  */-/g' sed_test              # space를 찾아서 -기호로 변환한다.
                                                               # * 기호 앞에 space가 두개라는 점에 유의
OS/tdir] # 한번에 여러 가지 편집 수행
OS/tdir] sed -e 's/database/DATABASE/g' -e 's/information/INFORMATION/g' sed_test
 
========================================================================================
 
awk : 패턴 검색과 처리를 위한 언어
=> 명령어의 이름은 개발자인 Alfred V. Aho, Peter J. Weinberger, Brian W. Kernighan 3인의
    머리글자를 사용해서 만든 것이다.
 
  awk '{ action}' filename
 
OS/tdir] ls -l | awk '{print $0}'              # 전체 필드가 모두 나타나도록...
 
drwxr-xr-x   2   prof9i4  dba          512  4월   25일  15:44   a_dir
drwxr-xr-x   2   prof9i4  dba          512  4월   18일  23:53   b_dir
     $1     $2     $3   $4         $5  $6   $7     $8    $9 
                                        $0                                            
 
OS/tdir] ls -l | awk '{print $1}'                    # 1번 필드만 나타도록...
OS/tdir] ls -l | awk '{print $1, $9}'               # 1번과 9번 필드만 나타나도록...
OS/tdir] ls -l | awk '{print $3 "t" $4 "t" $9}'                # Tab 키가 적용된 결과...
OS/tdir] ls -lt | awk '{print $9, "is using", $5, "bytes"}'     # text 추가
OS/tdir] ls -lt | awk '$5 <= 200 {print $0}'   # 5번 필드가 200 이하일 경우 출력

Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
71 일반 날씨정보 rss 2018.03.08 5095 0
70 Pi Arduino Pro Mini PIN 정보 file 2018.03.18 7330 0
69 Pi LiPo charger 리튬 배터리 충전모듈 사용법 file 2018.03.19 8804 0
68 Python [tensorflow] 텐서플로우 문서 한글번역본 2018.03.22 5455 0
67 Pi 라즈베리파이 PI CAMERA 설치하기 2018.04.24 9513 0
66 Pi 파이썬 코드를 이용한 파이카메라 제어 2018.04.24 10709 0
65 Pi 라즈베리파이 음성인식 S/W 2018.04.26 6649 0
64 일반 Visual Studio Code 환경 설정 및 사용 방법 1 2018.06.01 24198 0
63 Pi 아두이노에 도움이 되는 전자부품들 2018.06.20 5887 0
62 LINUX vim 에디터 이쁘게 사용하기 2018.08.06 16229 0
61 Pi 포토커플러 Photo Coupler 특징, 종류, 출력, 구조, 동작 원리, 파라미터 2019.01.03 26675 0
60 Pi NPN과 PNP 트랜지스터의 차이 2019.01.03 14201 0
59 Pi 칩 저항 사이즈표, 사이즈변환, 와트, 오차표 2019.01.11 10801 0
58 LINUX vi 설정하기(.vimrc) 2019.02.01 5763 0
57 Android git archive 를 사용해서 폴더를 .git 제외하고 tar 나 zip 으로 묶기 1 2019.02.10 7510 0
목록
Board Pagination ‹ Prev 1 ... 25 26 27 28 29 30 31 32 33 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5