
本文共 4536 字,大约阅读时间需要 15 分钟。
������������AWK������������
AWK������������������������������������������������������Linux/Unix���������������������������������������������������������������������������������������������������������������������������������AWK������������������������������������������������������������������������������������������������������������������AWK���������������������������������������
������AWK������
1. ���������������
AWK���������������������������������������������������Alfred Aho���Brian Kernighan���Peter Weinberger���gawk���AWK���GNU������������������Bell������������GNU������������������������
2. ������������
AWK���������������������������������������������������������������������������������������������������������������������������������������AWK���������������������������������������������������������������������������������������
3. ������������
AWK���������������������������������
awk [options] 'commands' filename
���
awk [options] -f awk-script-file filename
������ -F
���������������������������������������������������������(tab)���
������AWK���������������������
1. ������������������
AWK���������������������������������������
- ���������������������������������������������������$0������������
- ������������������������������������������������������������������������������������$1, $2, ..., $n������
- ���������������������������������������������������������
2. ������������
$0
������������������������������NR
������������������NF
���������������������FS
���������������������������������������OFS
���������������������������������������������- ���������������$1���$100������������������������������
������AWK������������������������
1. ������������
print
���������������������������������������������������
awk '{print $1, $3}' /etc/passwd
������������������������������������������������
2. ���������������
printf
������������������������������������������
awk '{printf "���������:%s ������id:%s\n",$1, $3}' /etc/passwd
������������������ %s
��������������� %d
������������������������ -15s
������������������15���������
������AWK������������������������
1. ������������
- ������������������������
/pattern/
���������������awk '/^root/' /etc/passwd
- ������������������������������������������������������������
awk '$3 > 500' filename
- ������������������������������������������������
awk '$3 * 10 > 500' filename
2. ������������
- ������
&&
���||
������������������������������������awk '$2 > 5 && $2 <= 15' filename
- ������
!
������������������������awk '!( $2 < 100 && $3 < 20 )' filename
������AWK���������������������
1. ������������
AWK������ if
������������������������������������������������
awk -F: '{if($3 == 0) {print $1 " is administrator."}}' /etc/passwd
2. ������������
- while���������
awk '{i=1; while(i <= 10) {print $0; i++}}' filename
- for���������
awk '{for(i=1; i <= 10; i++) {print $0;}}' filename
3. ������������
AWK������������ econ���������������������������
awk -F: '{username[++i] = $1} END {print username[1]}' /etc/passwd
������AWK���������������������������
1. ������������IP������IPv6���������
������awk
���������IPv6���IP���������
awk -F: '{if($2 != "") && !($2 ~ "^::")) {print $2}' /etc/networks/eth0
2. ������������������
������������������������������������������������������
free -l | awk '{if($3 > 80 || $4 > 70) print "���������������������������"; else print $0}'
3. ������������������
���������������������������������������������
du -h | awk '{print $1 "|" $2 "|" $3 "|" $4}' directory
4. ������ARP������
������arp
������������awk
������ARP������
arp -a | awk -F "[()]" '{print "arp -d", $2}' | sh
5. ���/etc/hosts���������������������������
������������������������������������������
awk '{print $NF}' /etc/hosts
������AWK���������������������������
1. ������������������������
���������������������������������������
awk '{if($3 == 0) count++} END {print "���������������:", count}' /etc/passwd
2. ������������������
���������������������������3������������
echo "This is a test" | awk '{for(i=1; i <= NF; i++) {if(length($i) < 3) print $i}}'
������AWK������������������
1. ���������������
������AWK������������������������������������3������������
echo "I am a teacher" | awk '{for(i=1; i <= NF; i++) {if(length($i) < 3) print $i}'
���������������
Iama
2. ���������������
������������������������������������
awk '{gsub(/e/g, "x") actor}' this_is_a_test
3. ������������
������������������������������������
sort datafile | awk '{print $1}' filename
���������������������������������������������������������������������AWK���������������������������������������������������������
发表评论
最新留言
关于作者
