码迷,mamicode.com
首页 > 其他好文 > 详细

AWK

时间:2018-01-31 20:25:13      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:技术   正则   系统   int   环境   简单的   seq   包含   模糊匹配   

此博客不代表专业的技术分析,作为一个刚刚接触linux的新手来说,这是我在长久的linux中学习笔记,有错误的地方请指出:
强大的AWK
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命令可以查看正在应用的awk的来源(ls -l /bin/awk )
今天上传的只有一些最基础的应用,可能连入门都不算
Awk 基础格式: awk 选项 ‘条件 {指令}’ 文件 【所有的指令必须放在{ } 中】
前置命令 | awk 选项 ‘条件 {指令}’ 文件
ifconfig | head -2 | awk ‘/inet/{print $2}‘
选项: -F指定任意分隔符 也可以使用“[ ]”里面可以放入分割符的集合
-v 定义变量
[root@ Shell ~]# x=33
[root@ Shell ~]# awk -v i=$x ‘BEGIN{print i}‘
33
条件:
1)/正则/: ~:模糊匹配
[root@ Shell ~]# awk -F: ‘$1~/root/‘ /etc/passwd ~:匹配的意思【匹配第一列包含root字符】取反在~前加入!
2)字符串和数字的比较:经准匹配字符:==,>=,>,<,<=,!= 精准匹配
:awk -F: ‘$1==”root”‘ /etc/passwd
[root@ Shell ~]# useradd roota
[root@ Shell ~]# awk -F: ‘$1=="root"‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@ Shell ~]# awk -F: ‘$1~/root/‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash
roota:x:1037:1037::/home/roota:/bin/bash
3)逻辑判断 :&& | |
[root@ Shell ~]# awk -F: ‘$3==0 || $3==1000 ‘ /etc/passwd
[root@ Shell ~]# awk -F: ‘$3>10 && $3<20 ‘ /etc/passwd
4)算术运算: + - / %% 7 ==【余数等于7】
[root@ Shell ~]# awk ‘BEGIN{print 3+2}‘
5
[root@ Shell ~]# awk ‘BEGIN{x=5;x+=6;print x}‘
11
[root@ Shell ~]# awk ‘BEGIN{print 3.8-2.2}‘
1.6
[root@ Shell ~]# awk ‘BEGIN{print 3/2}‘
1.5
[root@ Shell ~]# awk ‘BEGIN{print 3
2}‘
6
[root@ Shell ~]# awk -F: ‘$3>=1000{i++} END{print i}‘ /etc/passwd
19
Seq 300 中能被7整除,或者包含7的
[root@ Shell ~]# seq 300 | awk ‘$0%7==0 ||/7/{print $0}‘
[root@ Shell ~]# seq 300 | awk ‘$0%7==0 || $1~/7/‘
[root@ Shell ~]# seq 300 | awk ‘$0%7==0 || /7/‘

这些只是AWK的一些入门,最简单的知识,但是想要把awk运用号,还要很好的运用正则表达式

AWK

标签:技术   正则   系统   int   环境   简单的   seq   包含   模糊匹配   

原文地址:http://blog.51cto.com/13587255/2067455

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!