shell脚本awk的基本用法

AWK

复制代码
 1 AWK
 2 
 3 linux取IP地址
 4 
 5 ifconfig  |  grep -w inet | sed -n '1p' | awk  '{print $2}'
 6 
 7 eg:
 8 
 9 awk  -F  ':'  '{print $1}' /etc/passwd
10 
11 awk  -F  ':'  '{print $NF}' /etc/passwd  取最后一个字段
12 
13 awk  -F  ':'  '{print $(NF-1}' /etc/passwd
14 
15 NR:行    NF:最后
16 
17 awk ' NR==2 {print}'  /etc/passwd  支取第二行
18 
19 第一行第二个字段
20 
21 awk -F ':'  'NR==1 {print $1}' /etc/passwd
22 
23 第三行以后的
24 
25 awk 'NR>3 {print}' /etc/passwd
26 
27 小写转大写
28 
29 awk -F ':' '{print toupper($1)}'  /etc/passwd.bak
30 
31 字符串改为小写
32 
33 awk '{print tolower($0)}' /tmp/aa.txt
34 
35 
36 
37 awk '/root/ {print}' /etc/passwd
38 
39 awk -F ':' '$1=="root" {print}'  /etc/passwd
40 
41 awk -F ':' '$1=="root" {print $2}'  /etc/passwd    #$2打印第二个字段  $0所有字段
42 
43 awk -F ':' '{if ($1=="root") print $1;else print $2}' /etc/passwd    -F字段  ':' 以:为一个字段
44 
45 100以内的数相加
46 
47 seq 100|awk '{sum+=$0} END {print sum}'  
48 
49 
50 
51 vim sx    BEGIN 没有开始处理文件时保存的
52 
53 awk  'BEGIN {FS=":";print "统计销售金额";total=0} {print}' sx
54 
55 awk  'BEGIN {FS=":";print "统计销售金额";total=0} {print $3;total+=$3} END {print "销售金额总计: %.2f
",total}'  sx
原文地址:https://www.cnblogs.com/Zrecret/p/11993590.html