awk 로 마음의 정리
前段时间用AWK处理文本生成报表,用起来非常不错。在这里做个记录。
AWK擅长于文本处理和报表生成,有许多精心设计的特性,允许进行多种方式的编程,一旦学会,将给大家带来新的数据处理体验。
AWK 총 결 1 1, 방식 & 구조 1 2, 행 & 열 매 칭 정규 표현 식 2 2.1 행 매 칭 2 2.2 열 매 칭 2 3, if 판단 순환 (break, contine) 연산 자 2 4, 특수 기호 3 5, 배열 & 내장 함수 3 6, 사용자 정의 함수 와 역할 영역 4 7, 해결 역할 영역 기법 4
1. 방식 & 구조
1. awk 'BEGIN {} {} END {}' $file//명령 행 에 직접 2, [root@node91xie]\# vi test. awk/awk 스 크 립 트 를 파일 에 기록 합 니 다!/bin/awk BEGIN {/(주의) BEGIN 과 {는 같은 줄 FS = ":";} {print $1;} END {/(주의) END 와 {는 같은 줄 에 있어 야 합 니 다} [root@node91xie]\# echo | awk - f test. awk $file//awk 스 크 립 트 처리 로 $file 처리
AWK 코드 구조
BEGIN 블록 초기 화, {} 테마 코드 END 블록 사용 및 최종 출력 및 집계 작업
표시//$ 아래 표시
awk 'BEGIN{FS=“:” ; i=0} {i+=1;print $1} END{ print “—>“,i,“lines” }'/etc/passwd
2. 줄 & 열 일치 정규 표현 식 2.1 줄 일치 awk 'BEGIN {}/root/{print $0} END {}'/etc/passwd 등가 'awk' BEGIN {} $0 ~/root/{print $0} END {} '/etc/passwd root: x: 0: 0: root:/root:/bin/bash operator: x: 11: operator:/root:/sbin/nologin 2.2 열 일치' awk 'BEGIN {FS ='} $1 ~/root/{print $0} END {}'/etc/passwd//정규 표현 식 root: x: 0: 0: root:/root:/bin/bash' awk 'BEGIN {FS =': '} $1 = =' root '{print $0} END {}'/etc/passwd///같은 열 을 선택 하 십시오. x: 0: 0: root:/root:/bin/bash 'awk' BEGIN {FS = ':'} ($1 = 'root') & & & ($2 = 'x') {print $0} END {}'/etc/passwd//여러 판단 root: x: 0: 0: root:/root:/bin/bash 파일 로 쓰기!/bin/awk BEGIN {FS = ":"} ($1 = = "root") & & ($2 = = "x") {/(주의) 여 기 는 같은 줄 에 있어 야 합 니 다. awk 는 JAVA 의 괄호 치기 방식 print $0} END {}
3, if 판단 순환 (break, contine) 연산 자 if awk 'BEGIN {FS = ":"} {if ($0 ~/root/& $1 = = = "root") {print $0}}} {{}}}'/etc/passwdroot: x::::루트:/root://////$$$$$$$$$$$$0} {print $0; i = 0; i < 3; i++++) {print "}} {{{}}} {{{{}}}//etc/passwd/////////줄 마다 빈 줄 을 세 줄 씩 인쇄 합 니 $$$$$$${{}}}} {print$0; (i = 0; i < 3; i < 3; i +} {print $0; i = 0; do {print"; i++} while(i < 3)} END {} '/etc/passwd while awk' BEGIN {} {print $0; i = 0; while (i < 3) {print '; i +} END {}'/etc/passwd 연산 자 awk 'BEGIN {i =' 0 '} {i +; print i} END {}'/etc/passwd///awk 수학 연산 을 할 때 숫자 로 바 꿀 수 있 는 문자열 을 0 으로 바 꿀 수 없습니다.
4. 특수 기호 FS 필드 구분자 awk 'BEGIN {i =' t '; FS =': '} {i++; print NF} END {}'/etc/passwd NF 필드 수 awk 'BEGIN {i =' t '; FS =': '} {i++; print NF} END {}'/etc/passwd NR 몇 번 째 줄 awk 'BEGIN {i =' t '; FS =': '} {i +; print NR} END {}'/etc/passwd RS 기록 구분자 변 수 는 기본적으로 cat/etc/passwd | xargs cat/etc/passwd | xargs | awk' BEGIN {RS = "nologin"} {print "-"$0} {} "OFS 출력 쉼표 대체 echo"| awk 'BEGIN {OFS = "- YES -"} {print "1", "2"} END {} "ORS, 모두"출력 기록 구분자 "echo"| awk' BEGIN {ORS = "; OFS =";“—YES—“} {print “1”,“2”;print “3”,4} END{}'
5, 배열 & 내장 함수 배열!/bin/awk BEGIN {months ["Jan"] = "01"; months ["Feb"] = "02"; months ["Mar"] = "03"; months ["Apr"] = "04"; monts ["May"] = "05"; months [준 "] ="06 "; months ["Ju"]] ="06 "; months ["Ju"] ="07 "; monts ["Aug "] ="08 "; monts ["Sep "] ="09 "; monts ["Oct"Oct"]] = "10"; 10 "10"; 10 "; monts ["10 "; monts [""10""; monts ["""""""9 "Sep"]]]]] months ["Nov"] = "11";months[“Dec”]=“12”; } { for(i in months){ print i,” —>“,months[i]; }
내장 함수 awk 'BEGIN {FS =': "} {print"length -> ", length ($0); print"index -> ", index ($0,"root "); print toupper ($0)} END {} '/etc/passwd
6. 사용자 정의 함수 와 역할 영역 사용자 정의 함수 echo | awk 'BEGIN {} function test () {for (i = 0; i < 5; i +) {print "--", i}} {i = 0; for (i = 0; i++) {print "^ ^ ^", i; test ()} END {}'
echo | awk 'BEGIN{} function test(){ for(j=0;j<5;j++){print “——“,j}}{ i=0;for(i=0;i<3;i++){print “^^^^“,i ; test()} } END{}'
7. 해결 역할 영역 기술
함수 매개 변 수 를 이용 하여 echo | awk 'BEGIN {} function test (i) {for (i = 0; i < 5; i++) {print "--", i}} {i = 0; for (i = 0; i++) {print "^ ^ ^", i; test ()} END {}'
x, y 가 입력 인자 라면? echo | awk 'BEGIN {} function test (x, y, i) {for (i = 0; i < 5; i++) {print "--", i} {i = 0; for (i = 0; i < 3; i++) {print "^ ^", i; test ()} END {}'
기교, 표지 칸 막 이 echo | awk 'BEGIN {} function test (x, y, END, i) {for (i = 0; i < 5; i++) {print "---", i} {i = 0; for (i = 0; i < 3; i++) {print "^ ^", i; test ()}} END {}' 여러 AWK 파일?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.