awk 포맷 출력
사례: 통계 시스템 에서 bash 를 로그 인 셸 의 사용자 총 갯 수로 사용 합 니 다. 1. 예비 처리, 할당 변수 x = 0 2. 한 줄 씩/etc/passwd 파일 을 처리 합 니 다. 마지막 1 열 이/bin/bash 인 것 을 발견 하면 x + 1 3. 모두 처리 한 후에 x 값 을 출력 하면 됩 니 다.
awk ‘BEGIN{x=0}/bash$/{x++}END{print x}’/etc/passwd
awk -F: ‘BRGIN{print “User\tUID\tHome”}{print $1 “\t”$3 “\t”$6} END{print
NR}’/etc/passwd User UID Home root 0/root
awk 처리 파일: 1. 정규 설정 파일 사용 - bash 로 끝 나 는 전체 기록 출력 (전체 줄 출력)\# awk - F: '/bash $/{print}'/etc/passwd
-输出包含root的行
# awk -F:‘/root/’ /etc/passwd
-输出root或者tom账户的用户名和UID信息
# awk -F:‘/^(root|tom)/{print $1,$3}’
-输出账户名称包含root的基本行,(第一例包含oo)
# awk -F:‘$1~/oo/’ /etc/passwd
-输出登录shell不以nologin结尾的用户名和登录shell信息
# awk -F:‘$7!~/nologin$/{print $1,$7}’ /etc/passwd
!~ :取反匹配
2.使用数值/字符串比较设置文件
比较符号:
== 等于 != 不等于
< > >= <=
-输出账户UID大于等于1000的账户名和UID的信息
# awk -F:‘{print $1,$3}’ /etc/passwd
-输出第三行
# awk -F:‘NR==3{print}’ /etc/passwd
-输出UID小于10的账户名和UID信息
# awk -F:‘$3<10{print $1,$3}’ /etc/passwd
-输出用户名为root的行
# awk -F:‘$1==“root”’ /etc/passwd
-输出UID大于10且小于20的账户信息
# awk -F:‘$3>10 && $3<20’ /etc/passwd
-输出UID大于1000或者小于10的账户信息
# awk -F:‘$3>1000 || $3<10’ /etc/passwd
数学运算:
# awk ‘BEGIN{x++;print x}’
1
# awk ‘BEGIN{x=8;print x+=2}’
10
# awk ‘BEGIN{x=8;x--;print x}’
7
# awk ‘BEGIN{print 2+3}’
5
# awk ‘BEGIN{print 2*3}’
6
# awk ‘BEGIN{print 23%8}’
7
-统计200以内3的倍数的数量
# seq 200 | awk ‘$1%3==0{i++} END{print i}’
awk过滤if分支结构:
1.单分支
-统计UID小于或等于1000的用户数量
# awk -F:‘{if($3>1000){i++}} END{print i}’ /etc/passwd
-统计登录shell是/bin/bash的用户
# awk -F:‘{if($7~/bash$/){i++}} END{print i}’ /etc/passwd
2.双分支
-分别统计UID小于或等于1000、UID大于1000的用户个数
# awk -F:‘{if($3>=1000){i++}else{j++}} END{print i,j}’ /etc/passwd
-统计登录shell是/bin/bash的用户和登录shell不是/bin/bash的用户的个数
# awk -F:‘{if($7~/bash$/){i++}else{j++}} END{print i,j}’ /etc/passwd
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.