출처

http://www.thegeekstuff.com/2010/01/awk-introduction-tutorial-7-awk-print-examples/

http://cs.canisius.edu/ONLINESTUFF/PL_TUTORIALS/AWK/awk.examples


awk 명령 옵션 모음





# 파일 전체 출력
$ awk '{print;}' example1
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Sanjay  Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   DBA        Technology  $6,000

# 특정 패턴 매칭 출력
$ awk '/Thomas/             # 엔터키로 패턴 추가
> /Nisha/' example1
100  Thomas  Manager    Sales       $5,000
400  Nisha   Manager    Marketing   $9,500

특정 열만 출력
$ awk '{print $2, $5}' ./example1
$ awk '{print $2, $NF}' ./example1   # NF는 마지막 필드를 뜻함
Thomas $5,000
Jason $5,500
Sanjay $7,000
Nisha $9,500
Randy $6,000


특정 범위만 출력
$ awk '$1 > 300' example1    # 1열이 300보다 크면 출력
400  Nisha   Manager    Marketing   $9,500
500  Randy   DBA        Technology  $6,000


지정된 열에 지정된 스트링과 일치하는 라인만 출력
$ awk '$4 ~/Technology/' ./example1       # 4열에 Technology가 있으면 출력
200  Jason   Developer  Technology  $5,500
300  Sanjay  Sysadmin   Technology  $7,000
500  Randy   DBA        Technology  $6,000   


지정된 라인에 지정된 스트링과 매칭하는 라인의 개수 출력
# 4열에 Technology 매칭되면 count를 증가 시켜서 그 개수를 출력해줌
$ awk 'BEGIN { count=0;}         # 엔터
> $4 ~ /Technology/ { count++; }   # 엔터
> END { print "Number of employees in Technology Dept =",count;}' example1    
Number of employees in Technology Dept = 3       


라인별 length 비교하여 출력
$ awk 'length == 7 {print $0}' last_name   # 라인의 length가 7이면 출력
진 陈
번 樊
보 寶
순 順
...


반응형

MYSQL에서 InnoDB 엔진이 있다가 갑자기 사라진 경우 

> 본인이 겪은 상황은 /etc/my.cnf의 설정을 바꾸는 과정에서 사라짐.


mysql> SHOW ENGINES;         으로 확인하거나, 아래 명령으로 확인한다.

mysql> show variables like 'have_innodb';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| have_innodb   |  NO   |

+---------------+-------+

1 row in set (0.00 sec)


아래 명령 3번 수행하면 됨.


$ /etc/init.d/mysql stop

$ rm /var/lib/mysql/ib_logfile*   

                                        <= 이 파일 2개를 mv로 옮기는 방법도 있는데 제가 겪은 상황에서는  안 됐음..

$ /etc/init.d/mysql start








반응형


* REDHAT AND FEDORA CORE LINUX

 /sbin/service sshd restart


* SUSE LINUX

/etc/rc.d/sshd restart


*DEBIAN/UBUNTU

/etc/init.d/sshd restart


*SOLARIS 9 AND BELOW

/etc/init.d/sshd stop

/etc/init.d/sshd start


*SOLARIS 10

svcadm disable ssh

svcadm enable ssh


*AIX

stopsrc -s sshd

startsrc -s sshd


*HP-UX

/sbin/init.d/secsh stop

/sbin/init.d/secsh start


반응형

매번 까먹어서 메모해둠. 리눅스에서만 사용


루트권한으로 lsof -i :$PORT번호


사용예시 

# lsof -i :19898

반응형

큰 좌절 OTL, 여지껏 이 변수 타입을 해깔려하다니 ㅜ.ㅜ


아예 정리한다.


[32bit 리눅스 머신]

$ getconf LONG_BIT

32 


int     =   4

long   =  4

time_t =  4


[64bit 리눅스 머신]

$ getconf LONG_BIT

64


int      = 4

long   = 8

time_t  = 8



반응형

이럴수가,, more 명령 사용할 때, spacebar로 내리기만 해서 그 외에 기능에는 관심조차 없었다.


간략하게 2개 옵션을 더 알게 되니 more 명령어를 아주 유용하게 써서 여기에 남겨둠.

나머지 옵션은 알면 더욱 유용하겠지만, 잘 안쓸듯해서 밑에 작게 적어둠.


아래로 내리기     : space bar

위로 올리기        : b 

특정 문자열 찾기 : vi와 동일하게 / (슬래쉬)를 이용, 예를들면 /test


상세 옵션정보


  h              Display this help.


  f, ^F, SPACE * Forward  N lines, default one screen.

  b, ^B        * Backward N lines, default one screen.

  j, ^E, CR    * Forward  N lines, default 1 line.

  k, ^Y        * Backward N lines, default 1 line.

  d, ^D        * Forward  N lines, default half screen or last N to d/u.

  u, ^U        * Backward N lines, default half screen or last N to d/u.

  g            * Go to line N, default 1.

  G            * Go to line N, default the end of the file.

  s            * Skips forward N lines, with a default of 1 line.

  p, %         * Position to N percent into the file.

  z            * Display N more lines and sets the screen size to N.


  r, ^L          Repaint screen.

  R              Repaint screen, discarding buffered input.


  m[a-z]         Mark the current position with the supplied letter.

  '[a-z]         Return to the position previously marked by this letter.

  ''             Return to previous position.


  /pattern     * Search forward  for N-th line containing the pattern.

  /!pattern    * Search forward  for N-th line NOT containing the pattern.

  ?pattern     * Search backward for N-th line containing the pattern.

  ?!pattern    * Search backward for N-th line NOT containing the pattern.

  n            * Repeat previous search (for N-th occurence).

  N            * Repeat previous search in the opposite direction.


  :a             Display the list of files.

  :e, E [file]   Examine a new file.

  :n           * Examine the next file.

  :p           * Examine the previous file.

  :t [tag]       Examine the tag.

  v              Run an editor on the current file.


  !command       Invokes a shell command.


  =, :f, ^G      Print current file name and stats.


  q, :q, Q, :Q, ZZ, <interrupt>   Exit.

반응형
MAN PAGE 정보

SIZE   Total size of the process (text, data, and stack) given in kilo-
              bytes.

RES Resident memory: current amount of process memory that resides in physical memory, given in kilobytes.

==> Shared Memory나 MMAP, malloc 같이 메모리 할당하면서 leak이 있다면 RES가 서서히 증가할 수도 있을것 같다는게 가장 납득이 간다.

==> 현재까지 뒤져본 결과로는,, valgrind로 메모리 leak을 찾거나 소스코드를 자세히 보라는게 가장 납득이 간다..

          



반응형

/etc/shells 파일에 설정이 제대로 되지 않은 경우

위의 에러가 뜨면서 ftp 접속이 안된다.


이럴때는 간단하게 위의 파일을 생성해주면된다. 


해당 계정에 대한 쉘의 경로를 적어둔다. 


예를 들면 /etc/passwd 파일에 /usr/bin/csh 을 사용한다면

해당 경로를 shells 파일에 적어두기만 하면된다. 


 /usr/bin/sh

 /usr/bin/csh

....


일단은 이 방식으로 해결. 



반응형

+ Recent posts