awk:既可以对行进行截取,也可以对列进行截取
1 awk ’/字段/‘ 文件名 (语法格式)
提取带有某字段的行
eg :awk ’/root/‘ /etc/passwd
2 查看列
awk ’{print $列数}‘ 文件名
eg : awk ’{print $2}‘ f1
查看f1文件的第二列
awk ’{print $列数a,$列数b}‘ 文件名
查看文件的第a列和第b列(中间用,隔开)
查看行
awk ’NR==行数‘ 文件名
查看文件的第几行
eg : df -h | awk ’NR==2‘
组合
awk ’/字段/ {print $行数a}‘ 文件名
eg : df -h | awk ’/sda2/ {print $2}‘
查看包含sda行的第二区域
在此之前可以先df -h 看一下
eg:date | awk ’{print “month:” $2 "\ntime" $4}‘ 列示月份及时间
eg: date | awk '{print "year:" $6 "\nmonth:" $2 "\nday" $3}'
列示年月日
\n为换行符 将\n之后的字符改到下一行
awk ’{pring “字符段1:” $列数 “\n字符段2:” $列数}‘
输出结果为
字符段1: 内容1
字符段2: 内容2
。。。
awk ’{print ”\t字符段1“ $列数1,$列数2 ”字符段2“}‘ 文件名
\t为制表符(目的是使其间隔变大)
eg:课件awk 例7
eg:
df -h | awk ’{print ”\t“ "xiangyanger" $1,$2 "\t" "!"}‘
df -h | awk '{print "\txiaoyanger" $1,$2 "!"}'
df -h | awk '{print "\t" $1,$2 "\t" "xiaoyanger" "\t" "?"}'
awk '/关键字段/ {print ”字符段1“ ”\t“ $1,$2 ”字符段2“}' 文件名
eg:df -h | awk ’/sda3/ {print “\t” "meinv" $1,$2 "\t" "yeshou"}‘
在sda3所在的行的基础上,给其加上“美女”与“野兽”的字样
awk ’/关键字段/ {print NR,$0}‘ 文件名
eg : df -h | awk ’/sda3/ {print NR,$0}‘
给带有关键字段的行头前加上记录号(可以理解为行号)$0表示行头前
eg : df -h | awk ’/sda3/ {print NR,$2}‘
给带有sda3的字段的行前加上行号并显示第二列的内容
匹配关键字,若有该关键字则显示整行
awk ’$列数 ~ /关键字字段/‘
eg :df -h |awk '$1 ~ /sda3/'
~:用来匹配关键字
匹配不存在关键字的行,若有,则显示整行
awk ’$列数 !~ /关键字段/‘
!:代表取反
df -h | awk '$1 !~ /sda3/’
欢迎关注交流: