awk of shell
来源:互联网 发布:Js识别 key value 编辑:程序博客网 时间:2024/06/11 19:22
awk非常的优秀,运行效率高,而且代码简单,对格式化的文本处理能力超强。基本上grep和sed能干的活awk全部都能干,而且干得更好。
awk '{pattern + action}' {filenames}
尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。
#cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'root /bin/bashdaemon /bin/shbin /bin/shsys /bin/sh
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'name,shellroot,/bin/bashdaemon,/bin/shbin,/bin/shsys,/bin/sh....blue,/bin/nosh
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。可以理解为初始化和扫尾。
awk里面的if..else;
搜索/etc/passwd有root关键字的所有行
#awk -F: '/root/' /etc/passwdroot:x:0:0:root:/root:/bin/bash
这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)。
搜索支持正则,例如找root开头的: awk -F: '/^root/' /etc/passwd <----^ 代表搜索开头为root 的行
搜索/etc/passwd有root关键字的所有行,并显示对应的shell
# awk -F: '/root/{print $7}' /etc/passwd /bin/bash
这里指定了action{print $7}
- awk of shell
- shell-awk
- SHELL [awk]
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- shell awk
- [shell] awk
- shell--awk
- shell-awk
- AWK----awk与shell交互
- shell: awk最新教程
- 【华为OJ】【078-计算字符串的距离】
- ActiveMQ入门实例
- Hanoi塔问题
- 【有奖征文】走进VR开发世界(1)——我们离开发一款VR大作还有多远?
- 陶哲轩实分析-第6章-序列的极限
- awk of shell
- 内存管理之slab分配器
- 【华为OJ】【079-查找组成一个偶数最接近的两个素数】
- Unlock files in batch
- LInkedList
- IBM开发者社区:用 Eclipse 开发 Android 应用程序
- 平面分割问题
- 【华为OJ】【080-放苹果】
- 走进VR开发世界(2)——一些VR延迟优化方法