ex. 파일 절대경로에서 directory path 와 file name을 분리하는 스크립트 (awk -F && -NF)
# cat path.sh
---------------------------------------------------------------------
#!/usr/bin/ksh
source_full_path="/home/event_action/ftp.log"
source_file=`echo ${source_full_path} | awk -F"/" '{print$NF}'`
source_path=`echo ${source_full_path} | awk -F'/[^/]*$' '{print $1}'`
echo "source_full_path: " ${source_full_path}
echo "source_file: " ${source_file}
echo "source_path: " ${source_path}
---------------------------------------------------------------------
+. awk 로 field 추출시 조건문 사용
ex. 5번째 field의 값이 IPv4 이거나 IPv6인 경우, 특정 컬럼 또는 전체 컬럼을 출력
# lsof | awk '$5=="IPv4"||$5=="IPv6"{print}'
>> awk로 field의 조건만 검사한 후 전체 데이터를 그대로 출력하려면 'print'만 지정
# lsof | awk '$5=="IPv4"||$5=="IPv6"{$1,$2,$3,$5,$7}'
# lsof | awk '$5!="IPv4"&&$5!="IPv6"{print}'
+. awk로 받은 값을 shell을 통해서 명령을 실행하는 경우
(device 리스트 조회 후 파라미터 변경시에 주로 사용)
# lsdev –Cc disk | grep –v hdisk0 | awk '{print "chdev -l" $1 "-a fc_err_recov=fast_fail" }' | sh -x
------------------------------
awk '{print substr($0, index($0,$9))}'
awk -v N=9 '{sep=""; for (i=N; i<=NF; i++) {printf("%s%s",sep,$i); sep=OFS}; printf("\n")}'
awk -v N=9 '{for(i=1;i<N;i++){$i=""}}1'
awk '{ s = ""; for (i = 9; i <= NF; i++) s = s $i " "; print s }'
'IBM Power' 카테고리의 다른 글
env_chk.sh (0) | 2012.06.28 |
---|---|
ftp.sh (0) | 2012.06.28 |
diff 와 sdiff (문자열비교) (0) | 2012.06.28 |
AIX & HMC에 등록된 ssh-key 삭제하기 (0) | 2012.06.25 |
AIX -> HMC 비번없이 SSH로 로그인하기 (0) | 2012.06.25 |