awk工具
来源:互联网 发布:手机发射激光软件 编辑:程序博客网 时间:2024/05/22 02:22
1、截取文档中的某个段
head -n2 passwd|awk -F ‘:’ ‘{print $1}’
-F 选项的作用是指定分隔符,如果不加-F指定,则以空格或者tab为分隔符。 Print为打印的动作,用来打印出某个字段。
head -n2 passwd|awk -F ‘:’ ‘{print $0}’
注意awk的格式,-F后紧跟单引号,然后里面为分隔符,print的动作要用 { } 括起来,否则会报错。print还可以打印自定义的内容,但是自定义的内容要用双引号括起来。
awk -F ‘:’ ‘{print 1"#"2”#”3"#"4}’
2、匹配字符串或字符串
awk ‘/oo/’ passwd
可以让某个段去匹配,这里的’~’就是匹配的意思:
awk -F ‘:’ ‘$1 ~/oo/’ passwd
awk还可以多次匹配:
awk -F ‘:’ ‘/root/ {print
3、条件操作符
awk -F ‘:’ ‘$3==”0”’ /etc/passwd
awk中是可以用逻辑符号判断的,比如 ‘==’ 就是等于,也可以理解为 ‘精确匹配’ 另外也有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,在和数字比较时,若把比较的数字用双引号引起来后,那么awk不会认为是数字,而认为是字符,不加双引号则认为是数字。
awk -F ‘:’ ‘$3>=”500”’ /etc/passwd
在上面的例子中,本想把uid大于等于500的行打印出,但是结果并不是我们的预期,这是因为awk把所有的数字当作字符来对待了。
awk -F ‘:’ ‘$3>=500’ /etc/passwd
!= 为不匹配:
awk -F ‘:’ ‘$7!=”/sbin/nologin”’ /etc/passwd
两个段之间进行逻辑比较:
awk -F ‘:’ ‘
可以使用 && 和 || 表示 “并且” 和 “或者” 的意思:
awk -F ‘:’ ‘3>"5" &&3<”7”’ /etc/passwd
也可以是或者
awk -F ‘:’ ‘
4、awk的内置变量
awk常用的变量有:
NF :用分隔符分隔后一共有多少段
NR :行数
NF 是多少段:
head -n3 /etc/passwd | awk -F ‘:’ ‘{print NF}‘
NR是行号:
head -n3 /etc/passwd | awk -F ‘:’ ‘{print NR}‘
我们可以使用行号作为判断条件:
awk ‘NR>20’ /etc/passwd
也可以配合段匹配一起使用:
awk -F ‘:’ ‘NR<20 && $1 ~ /roo/’ /etc/passwd
5、awk中的数学运算
awk可以把段值更改
head -n 3 /etc/passwd |awk -F ‘:’ ‘$1=”root”‘
还可以计算某个段的总和
awk -F ‘:’ ‘{(tot=tot+$3)}; END {print tot}’ /etc/passwd
这里的END要注意一下,表示所有的行都已经执行,这是awk特有的语法,其实awk连同sed都可以写成一个脚本文件,而且有他们特有的语法,在awk中使用if判断、for循环都是可以的
awk -F ‘:’ ‘{if (1=="root") {print0}}’ /etc/passwd
如果想显示分隔符需要借助OFS:
head -5 /etc/passwd |awk -F ‘:’ ‘{OFS=”#”} {print
awk -F ‘:’ ‘{OFS=”#”} {if (3>1000) {print1,
- awk工具
- awk工具
- awk工具
- awk工具
- awk工具
- awk工具
- awk工具
- AWK工具简介
- Linux awk 工具探索
- AWK工具简介
- awk 数据处理工具
- AWK工具详解
- awk工具使用
- 数据处理工具之awk
- AWK文本分析工具
- awk工具的使用
- Linux awk工具 简介
- awk工具简介
- (CodeForces 883A) The Meaningless Game 二分答案思路+骚操作
- easyui动态设置required
- 搭建asp网站遇到的一些问题
- 字体、背景图片样式
- HBase PE使用命令
- awk工具
- 自制游戏 index.html
- maven仓库(阿里)
- 内存有限的情况下 Spark 如何处理 T 级别的数据
- Word2013中粘贴文字段落时大量的波浪线怎么去掉
- 用伪类画线条、圆点
- android手机误删通讯录恢复
- 2017.11.21笔记
- java_IO