awk命令使用

awk文本处理工具

awk 格式化输出,报告生成器
**格式: awk 选项 ‘程序{动作}’ 文件
选项:

      -F“” 指定分隔符  “[[:space:]]+|:” 多个分隔符
      -v 变量赋值 

内置变量:

   OFS:输出字段分隔符(列)  OFS=':'
   RS:输入行分隔符
   ORS:输出行分隔符
   NF:字段数量(列) \$(NF-1)即倒数第二字段
   NR:记录数量(行)  NR==4 即第四行
   自定义变量  -v f=2
   引用外部变量  '$name'

程序:

   BEFIN:处理之前
   END:处理之后
   模式/ / 正则表达式  行范围/ /,/ /

字段:

   即列,需要定义分隔符 $1为第一列  $0为所有列

动作:

   print 打印,相当于echo  
   printf 格式化输出

printf:

     必须指定分隔符,不会自动,需\n才会换行
    一个格式符对应一个参数$1
    格式符: %d取数字整数
          %s取字符串 %-15s即左对齐15字符  默认右对齐

比较操作符:

     ==等于  !=不等于  >大于  <小于 

逻辑操作符:

     与&&  或||  非!

流程控制:

    '{if($3>100)print $3}'
    '$3>100 && $3<1000{print $3}'

函数:

  sub()查找替换 替换一个
 '{sub(/:/,"-",$0)print $0}'
  gsub()全部替换
  cat /etc/passwd |awk -F":" 'gsub(/:/,"-",$0){print $0}'
  system() 调用shell函数****
cat /etc/passwd| awk -F: '{print}'  默认全部字段,即列
cat /etc/passwd| awk -F: '{print $1,$3}'  以:为分隔符取1,3列
cat /etc/passwd| awk -F: '{print $1"\t"$3}' 以:为分隔符取1,3列并且以tab建隔开
df | awk -F"[[:space:]]+|%" '/^\/dev\/sd/{print $5}' 取分区利用率
cat /etc/Passwd| awk -F":" -v OFS=" " '/\<0\>/,/\<50\>/{print $1,$NF}'以:为分隔符取0-50uid用户的shell并以空格隔开

取文件权限码

stat /tmp |awk -F"(" 'NR==4{printf "%d\n",$2}'

统计/etc/fstab文件中每个文件系统类型出现的次数

cat /etc/fstab |awk -F" " '/^UUID/{print $3}'|sort|uniq -c

统计/etc/fstab文件中每个单词出现的次数

cat /etc/fstab |grep -o '\<[a-z]\+\>'|sort |uniq -c |sort -nr

提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字

echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" |grep -o [0-9]|xargs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值