shell编程===》三剑客之awk命令
发布日期:2021-05-10 08:10:35 浏览次数:18 分类:精选文章

本文共 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}'

���������������

I
am
a

2. ���������������

������������������������������������

awk '{gsub(/e/g, "x") actor}' this_is_a_test

3. ������������

������������������������������������

sort datafile | awk '{print $1}' filename

���������������������������������������������������������������������AWK���������������������������������������������������������

上一篇:shell编程===》systemctl管理脚本
下一篇:shell编程===》三剑客之sed命令

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月28日 05时33分14秒