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都进行展示,则需要 "\|" 进行或选取。\对|进行转义,表示或运算,而不是|字符串

linux中awk命令学习的更多相关文章

  1. linux中awk命令(最全面秒懂)

    目录 一:linux中awk命令 1.awk命令简介 2.awk作用 3.awk的语法格式 4.解析awk使用方法 5.参数 6.awk的生命周期 二:awk中的预定义变量 三:awk运行处理规则的执 ...

  2. linux中awk命令详解(最全面秒懂)

    一:linux中awk命令 1.awk命令简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinber ...

  3. Linux中grep命令学习

    1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小 ...

  4. Linux中的命令学习笔记

    Linux挂载Winodws共享文件夹 mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/test /win 产生一个5位随机字符串 | md ...

  5. Linux 中 awk命令应用

    ls -la | awk '{printf ("%8s %8s %8s %8s %8s %8s %8s %8s %8s\n",$1,$2,$3,$4,$5,$6,$7,$8,sub ...

  6. Linux中awk命令的简单用法

    一.用例1: cat /proc/meminfo|grep "MemTotal"|awk '{print $2}' 说明,$2表示第2位,$0表示全部,如需表示$,可用$$转义.

  7. Linux中exec命令相关

    Linux中exec命令相关 exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. b ...

  8. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  9. linux中awk的使用

    在linux中awk绝对是核心工具,特别是在查找搜索这一领域,和掌握sed命令一样重要 下面为awk的一些基本知识,基于这些知识,可以让你随意操控一个文件: 在awk中:()括号为条件块,{}为执行的 ...

随机推荐

  1. android开发 静态碎片布局实现

    实现思维: 1.需要写2个或者多个子布局 2.写一个Java的class去实现将子布局与父类布局铺满.(一个子布局对应一个class) 3.在父类布局中导入fragment布局,并且添加android ...

  2. Eclipse properties.config.yml 配置文件中文编码问题。Eclipse 配置文件插件解决方案

    写了中文默认转成unicode. 正常应该是这样子的 其实不是什么大问题只需要装一个插件就行了,插件有很多.推荐使用,Properties Editor 安装方式如下 .这里使用的是离线安装.即本地文 ...

  3. 【转】netstat 的10个基本用法

    5. 获取进程名.进程号以及用户 ID 查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的.举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 ...

  4. js:浏览器插件

    1.chrome background.js //chrome.webRequest.onBeforeRequest.addListener(function(info) { // chrome.ta ...

  5. 9. 一个list拆分成多个list返回

    /**     * @Title: splitList     * @Description: 1个list分割成多个list     * @param targe 原list     * @para ...

  6. ansible常用模块即用法

    Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  模块名  又可以查看该模块有哪些参数可以使用. 下面 ...

  7. ThinkPHP输入验证和I方法使用

    在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了. ...

  8. as2 连接服务器 post

    import mx.utils.Delegate; //接收服务器数据的文本加载器 var result_lv:LoadVars; /** * 数据提交成功后 * 获取的数据 * @param suc ...

  9. flash推流工具<转>

    https://github.com/young-cowboy/young-cowboy.github.io https://www.cnblogs.com/xiaoniuzai/p/7129036. ...

  10. hadoop-2

    AsyncDispatcher,直接看代码 @Override protected void serviceStart() throws Exception { //start all the com ...