반응형
최강 XX 책을 샀다...

아놔...

설명대로 된게 하나도 없고..

답변도 엉망 진창이고

참고 하라고 그냥 끄적여 본다 !

서평 쓴 사람들은 나쁜사람임!

1. 설치 CD 한장 없다 책은 삼만원 후반대이다

2. 전혀 흥미를 느낄 수 없다

3.책을 쓴 저자가 엔지니어이다
   따라서!
   독자가 이해하기 쉽게 썼다고는 절대로 생각하지 말라

4. 카페에 질문을 남겨도 친절한 답변보다는 변명하기 바쁘다.

5. 내용 자체가 윈도우인지 리눅스 환경인지 헷갈려하고 있으며
    명령 자체가 실행되지 않아
    돈을 주고 책을 사서 별도로 공부해야 하는 책임.

결론

중급 이상에 어느정도 하는 사람만 봐야 하는책...

아 내돈............ ㅜㅜ


반응형

'일상다반사' 카테고리의 다른 글

일진 코스메틱 모노이 왁스  (0) 2012.01.27
바나나 식초 만들기  (0) 2012.01.16
클라우드 ? 클라우드 !  (0) 2011.06.28
모르는 한자 찾기  (0) 2010.11.02
아동 전집 할인 사이트  (0) 2010.10.27
반응형

소스 혹... 잊어 버릴까봐

첨부함.

반응형

'Language > JSP' 카테고리의 다른 글

로딩된 CLASS 정보 보기  (0) 2011.03.10
JSP WEB shell  (0) 2010.05.10
JSP 파일 읽기  (0) 2009.12.03
웹 상에서 바로 엑셀로 저장하기  (0) 2009.03.06
반응형

개요

Shell Programming 뿐만 아니라 기본적으로 로그 파일 변환 및 필터링시 유용하면 아주 강력한 Awk 유틸리티에 대한 일반적인 내용을 다룹니다.


문법

BEGIN : 실행하기전 전처리 단계 preprocess
ROUTINE {} : 수행
END : 처리 후 수행

ex)

$ cat sedscr
aa 90
bb 30
dd 99

$ cat sedscr | awk 'BEGIN{ sum = 0; print " "; } {sum += $2} END {print " : " sum}'
  : 219

ex - file version)

$ cat sum.awk
#!/bin/awk
#
# This Program is for Summing of exam_result.
#

# BEGIN :
BEGIN {
sum = 0;
print " ";
}

# ROUTINE :
{
sum += $2;
}

# END :
END {
print " : " sum;
average = sum / 3;
print " : " average;
}

$ cat sedscr | awk -f sum.awk
  : 219 : 73

 


내부 변수

FS : - Fields Seperator : BEGIN에서 재정의 함으로써 구분자를 바꿀수 있다.
RS : - Records Seperator : BEGIN에서 재정의 함으로써 레코드 구분자를 바꿀 수 있다.
NF : (Number of Fields)
NR : (Number of Records)
FNR : 입력파일이 여러개 인경우 현재 파일에서 NF를 표시한다.
OFS : FS( Output Fields Seperator ). 출력시의 FS
ORS : RS( Output Records Seperator ). 출력시의 RS
FILENAME : 현재 파일명

 


기타


스크립트
 

  1. 패턴 {동작}
    패턴, 동작 전체를 단일 따옴표로 묶어야한다.
    특정 패턴에 대해 동작하게 한다.
    패턴이 없으면 모든 레코드에 대해 동작한다.
  2. 패턴
    /정규표현식/ : sed가 지원하지 않는것까지 모두 지원
    비교연산 : 숫자 문자 비교 가능
    패턴매칭연산 : ~ 일치하는 부분, !~ 일치하지 않는 부분
    BEGIN : 레코드 읽기전 할일
    END : 레코드 읽고 나서 할일


동작
 

  1. 모두 {}로 둘러싸여야한다.
    ex)
    > good이라는 문자열을 포함한 모든 레코드 출력
    /good/
    > good이라는 문자열을 포함한 첫번째 레코드 출력
    /good/ {print $1}
    > 두개 이상의 필드를 가지는 모든 레코드 출력
    NF > 2
    > 한라인을 필드로, 빈라인을 레코드로 구분
    BEGIN {FS="\n";RS=""}

    /good/ {++x} END {print x}
    { total += $2 } END { print "Total of $2: " , total }
    length($0) < 20 /* 라인의
    길이가 20이하인 것 출력 */
    NF == 4 && /^good/
    NF > 0

연산자
 

  1. 산술 : =, +=, -=, *=, /=, %=
  2. 조건 : ? : 논리: ||, &&, ! 패턴: ~, !~
  3. 비교 : <, <=, >, >=, !=,==
  4. 증감 : ++, -- 필드 참조 : $
  5. 제어문 (C의 제어문과 같다)
    break
    continue
    do {실행} while (조건)
    exit
    for (관계형 배열의 요소) {실행}
    펄의 foreach와 같다
    if (조건) {실행} else {실행}
    return
    while


명령어

  1. 문자열연산
    gsub(reg,s) : 정규식 r을 s로 치환
    gsub(reg,s1,s2) : s2에서 정규식 r을 s1으로 대치한다.
    index(s1,s2) : s1에서 s2의 위치 넘겨줌 없음 0
    length(arg)
    match(s,r) : r의 매칭되는 부분의 위치를 넘겨줌
    split(string,array[,seperator]) : 구분자를 기준으로(디폴트 공백)해서 지정한 문자열을
    배열로 만든다.
    sub(r,s), sub(r,s1,s2) : gsub와 동일하나 여러개 일치해도 처음것만 실행
    substr(s,m) : s에서 m번째 부터 끝까지 문자 리터
    substr(s,m,n) : m에서 n까지
    tolower(str)
    touper(str)
  2. 수치 연산
    atan2(x,y) : y/x의 arctangent 값을 라디안 단위로 넘겨준다.
    cos(x)
    exp(arg)
    int(arg)
    log(arg)
    rand() : 0과 1사이의 난수를 발생
    sin(x)
    sqrt(arg)
    srand(expr)
  3. 입출력 프로세스
    close(filename) : 지정한 파일 닫는다.
    close(cmd) : 명령어 파이프 닫는다
    delete array?element : 지정한 배열 요소 지운다
    getline() : 다음 레코드 읽어 들인다.
    getline?variable [< "filename"] : 파일에서 읽어 들인다.
    next : 다음 레코드(라인)을 입력받는다, getline과 비슷하지만 /패턴/동작을 새롭게 시작>
    한다.
    print ?args ?> "filename" : 인자를 출력한다.
    printf "format" [,expressions] ?> "filename" : 형식에 맞춰 출력
    sprintf (format [,expressions]) : 출력은 안하고 리턴만한다.
    system(command) : 시스템 내부 명령어 실행
  4. 예제
    awk ' BEGIN { for (i = 1;i<=7,i++) print int(101*rand()) }'
    ls -l file1 file2 file3 | awk ' { x += $5 } ; END { print "Total bytes : " x } '
    awk ' END { print NR } ' filename
    awk ' NR % 2 == 0 '

 

 
출처 : http://yaaong.tistory.com/32 
반응형

+ Recent posts