awk命令常用命令

  

awk的基本用法
格式
awk动作文件名/文件名/awk/动作

  

打印当前,打印打印,0美元当前行

  
 <代码> [root@zhaocheng ~] #回声“awk是非常有用的”| awk“{打印$ 0}”
  awk是非常有用的
  
  root@zhaocheng ~ #猫鱼片
  根:1美元dDTFylQ3 .vTZKpm7mrra9WMsxvBfW美元。:18241:0:99999:7
  本:*:17834:0:99999:7:爸爸
  lp: *: 17834:0:99999:7ada
  同步:*:17834:0:99999:7:::gg
  关闭:*:17834:0:99999:7::哒
  停止:*:17834:0:99999:7::fsda
  18289年nginx ! !::::::: daaf
  18297年rabbitmq ! !::::::达达 
  

比如取这个文件的第一个域
- f分隔符,“:“以冒号为分隔符
'{打印1美元}'打印第每一列,这里就是以冒号为分隔符打印每列的第一个域

  
 <代码> [root@zhaocheng ~] #猫鱼片| awk - f”:““{打印1美元}”
  根
  箱子
  lp
  同步
  关闭
  停止
  nginx
  rabbitmq  
  

比如以这个文件打印最后一个域,这里打印的时候还是要以什么为分隔符,有的可能是空格

  
 <代码> [root@zhaocheng ~] #猫鱼片| awk - f‘:’“{打印$ NF}”
  7
  爸爸
  7 ada
  gg
  达
  fsda
  daaf
  达达 
  

或者取中间的一个域,可以使用美元(NF-1),处理的是1行从后往前1

  
 <代码> [root@zhaocheng ~] #猫鱼片|尾1
  systemctl开始mysqld
  (root@zhaocheng ~) #菲猫尾巴| 1 | awk - f”“‘{打印$ (NF-1)}
  开始 
  

或者想知道处理的第几行,可以使用NR,这里也就是相当于加了一个“),

  
 <代码> [root@zhaocheng ~] #菲猫尾巴| 3 | awk - f”“{打印NR”)“$ 2}
  1)
  2)
  3)开始 之前
  

比如取ifconfig的IP,这里取IP的方法比较多

  
 <代码> [root@zhaocheng ~] # | grep eth0 ip
  2:eth0: & lt;广播、多播、,LOWER_UP>mtu 1500 qdisc pfifo_fast状态默认qlen 1000组
  全球eth0 inet 172.17.0.8/20 brd 172.17.15.255范围
  这里是先取的打印每列的第2个域,使用尾巴1倒数第一行,使用awk - f以/为分隔符取第一个域
  (root@zhaocheng ~) # ip | grep eth0 | awk{打印$ 2}的尾巴| 1 | awk - f“/薄皗打印1美元}”
  172.17.0.8  
  

或者直接使用grep过滤出来,使用awk以空格为分隔符,直接取第二个域,再?号的第一个域

  
 <代码> [root@zhaocheng ~] # ip | grep eth0 | grep inet | awk - f”“‘{打印$ 2}| awk - f“/薄皗打印1美元}”
  172.17.0.8  
  

也可以使用sed取它的行数,再使用awk精确匹配

  
 <代码> [root@zhaocheng ~] # ip | sed - n ' 9 p ' | awk - f”“‘{打印$ 2}’| awk - f“/薄皗打印1美元}”
  172.17.0.8  
  

awk的其他变量
FS:字段分隔符,默认是空格和制表符。
RS:行分隔符,用于分割每一行,默认是换行符。
OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
口服补液盐:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
OFMT:数字输出的格式,默认为% .6g。

  

比如打印出这个文件中带有nginx子段的所有行

  
 <代码> [root@zhaocheng ~] # awk - f”:“/nginx/{打印$ 0}的鱼片
  18289年nginx ! !::::::: daaf
  dadad: nginx: sdada  
  

比如打印菲文件第三行以前的行,以:为分隔符打印第三个域

  
 <代码> [root@zhaocheng ~] # awk - f”:“《NR祝辞3{打印3美元}的鱼片
  17834
  17834
  17834
  18289年
  18297
  
  sdada  

awk命令常用命令