리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 3.95.23.35 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[쉘(awk)] [awk] 내장함수 간략 정리
 작성자 : rootman
Date : 2011-06-24 18:14  |  Hit : 21,015  


[sub] - 해당 문자열 치환
(1) regular : sub(regular exprssion , substitution string , [target string])
(2) example :
[[email protected] tmp]# cat /etc/passwd | awk '/^root/ {print $0}'
root:x:0:0:root:/root:/bin/bash


[[email protected] tmp]# cat /etc/passwd | awk '/^root/ {sub("bash","false"); print $0}'
root:x:0:0:root:/root:/bin/false


[[email protected] tmp]# cat /etc/passwd | awk -F":" '/^root/ {sub("/bin/bash","/bin/false",$7); print $7}'
/bin/false


[gsub] - 치환
[[email protected] tmp]# cat /proc/cpuinfo | grep "model name" | awk -F" " '{ gsub(" ",""); print $1$2 }'
modelname:Intel(R)Core(TM)[email protected]


[index] - substring과 일치하는 곳의 index 위치를 return
(1) regular : index : index(string , substring)
(2) example :
[[email protected] tmp]# echo "Hollow chanho" | awk '{ print index("123456789","34567") }'


[length] - 문자열의 길이를 return
(1) regular : length(string)
(2) example :
[[email protected] tmp]# echo | awk '{print length("1234 12345")}'
10


[substr] 시작 위치에서 길이(length)만큼을 return
(1) regular : substr(string , starting position , [length])
(2) example :
[[email protected] tmp]# echo | awk '{ print substr("1234 5678 90",3,5) }'
34 56


[match] - 패턴 검색
(1) regular : match(string , regular expression)
(2) example : 숫자로 끝나는 단어를 검색하여, RSTART 저장, RLENGTH 길이 반환
[[email protected] tmp]# echo | awk '{ start = match("Abcd E Hi22j9", /[1-9]+$/); print start, RSTART , RLENGTH} '
13 13 1


(3) example TWO :
[[email protected] tmp]# cat match.sh
#!/bin/sh
echo | awk '
{
A="ABCD EFGH IJKL"
if( match(tolower(A), "GH|gh"))
{
print "(1) orig : " A
print "(2) tolower : " tolower(A)
}
}'
[[email protected] tmp]# sh match.sh
(1) orig : ABCD EFGH IJKL
(2) tolower : abcd efgh ijkl


[split] array 변수 Value 값을 저장
(1) regular : split(string , array , [field separator])
(2) example :
[[email protected] tmp]# echo | awk '{ split("A/B/C/D/E/F/G", Value, "/"); print Value[3] }'
C


[sprintf] - 표준 출력 함수
(1) regular : sprintf : sprintf(string , expr1 ,expr2 , ...)
(2) example :
echo |awk '{printf("%.1f+%.2f=%.3f\\n", 40.1, 20.2, 60.3);}'




 
 

Total. 645
번호 분류 제목 작성자 등록일 조회수
570 sqlite [sqlite] Affinity Of Comparison Operands rootman 10-28 3947
569 sqlite [sqlite]정렬 순서 rootman 10-28 3693
568 sqlite [sqlite] Comparison Expressions rootman 10-28 3197
567 sqlite [sqlite] Column Affinity Behavior Example rootman 10-28 3292
566 sqlite [sqlite] sqlite3 데이터 타입 rootman 10-28 4116
565 다운링크 블루소레일 다운링크 rootman 08-30 11638
564 기초강좌 [RPM] 정리중.. rootman 08-04 2
563 기초강좌 [vim] 다중 창 사용하기 rootman 07-26 4065
562 기초강좌 [vim] 파일 버퍼 관련 명령 요약 rootman 07-26 4095
561 기초강좌 [vim] POSIX 문자 클래스 rootman 07-26 3848
560 기초강좌 [vim] 치환 명령 요약 정리 rootman 07-25 4114
559 기초강좌 [vim] 블록 지정 후 사용 가능한 키 정의 rootman 07-25 3834
558 windows tips [win] 파일 생성하기 (linux dd와 비슷한 것) rootman 06-27 4588
557 쉘(awk) [awk] 내장함수 간략 정리 rootman 06-24 21016
556 기초강좌 [debug] /proc/memory, oom-killer, Committed_AS rootman 06-24 5955
 1  2  3  4  5  6  7  8  9  10    
AND OR