linux中awk命令学习
awk是一个强大的文本分析工具,awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
通常获取某一行时,我们会使用 “grep 关键字“进行查找,但在读取某一列时,就非awk莫属。
使用方法
awk 'pattern {action}' {filenames}
pattern: 正则表达式或者关键字,既可以过滤出需要分析的语句,以"/"始以“/”终。
action:action在一个花括号中,表示一个逻辑编码块,通常只需要‘{print $数字}’。
参数 : -F '关键字' 表示使用关键字进行切片。
如何获取Id这列:nova service-list | awk '{print $2}' 。就这么简单,注意花括号用单引号。默认是从1开始的,0表示全部。
但此刻只想获取数字,不打印出Id,这时只需要在{}中添加打印条件即可。nova service-list| awk '{if (NR>3) print $2}'
使用 -F 参数,使用:切片/etc/passwd 获取用户名。
使用pattern 匹配,相当于使用grep 进行一次删选,然后再执行awk分割打印,比如打印出包含var的用户
从中获取的id号,我们可以继续编程,查询每个id的信息。比如id是用户id,就可以通过id查询用户的信息。如果一个一个查,势必比较慢,这时可以借助linux的for循环助力。这里查询openstack的flavor并展现每个flavor的信息。展示一个flavor的信息:
在awk中NR 表示number row 行号, FR 表示field number列号
for line in `nova flavor-list |awk '{if(NR>3)print $2}'`;do echo $line;nova flavor-show $line;done
在for...in...do...done,每句都需要以分号隔开。可以从中再用grep命令选出flavor中每个的vcpus行。
在使用grep命令时,如果是选取其中vcpus和ram都进行展示,则需要 "\|" 进行或选取。\对|进行转义,表示或运算,而不是|字符串
最新文章
- 利用for循环找出1000以内的质数
- Java 之 常用类(二)
- 如何用jenkins实现自动化构建新版本和二维码下载
- WinForm richtextbox 关键字变红色
- [转]java.sql.SQLException: 无效的列索引
- 【360开源】thinkjs:基于Promise的Node.js MVC框架 (转)
- SCOM资源池
- 李洪强iOS开发支付集成之银联支付
- 一个简单json数据提交实例
- ThinkPHP框架的网站url重写
- 安装Microsoft oneDrive(原skyDrive)
- table 自动换行
- 解开神秘面纱之“AngualrJS 中指令相关的嵌入作用域和模板作用域”
- 小程序App.js 传递数据给实例(app异步数据问题)
- ssh 端口转发实践
- 2019 年起如何开始学习 ABP 框架系列文章-开篇有益
- jQuery使用(二):DOM样式操作和属性操作
- 剑指offer二十之包含min函数的栈
- JAVA面对对象(二)——继承、方法的覆写
- java 转义符
热门文章
- HashMap扩容机制
- Java课程作业之动手动脑(三)
- raw格式和qcow2格式
- 64位操作系统(Windows 2008 R2 X64)ASP.NET 调用32位Excel,word 出现401 – 未授权: 由于凭据无效,访问被拒绝。
- 【ASP.NET 问题】IIS发布网站后出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”的解决办法
- CustomJSProperties珍藏版。目的是减少客户端的代码数量,但是又能将服务器数据传输给客户端。关键是:数据是实时更新的!!!!
- 完美解决ubuntu下sublime中文输入问题
- day10-连接mysql虚拟机报错
- Tomcat命令
- javascript_ajax 地址三级联动