awk的-F参数可以指定新的记录分隔符,有些时候可能需求指定多个分隔符,比如下面的内容

width:720 height:360

如果需要取出width和height后面的值的话,一般大家会这样做,即做两次awk操作

# echo "width:720 height:360" | awk '{print $1;print $2}' | awk -F: '{print $2}'
720
360

其实呢,通过在awk中指定两个记录分隔符(空格和:),即可一次性的提取出width和height后面的值,在awk中支持多个记录分隔符的写法如下

# echo "width:720 height:360" | awk -F'[ :]' '{print $2,$4}'
720 360

不过,一般像下面这样写,多一个加号表明将连续出现的记录分隔符当做一个来处理

# echo "width:720 height:360" | awk -F'[ :]+' '{print $2,$4}'
720 360

可以尝试在height前面再增加一个空格,各位可以自己去命令行下尝试下

# echo "width:720  height:360" | awk -F'[ :]' '{print $2,$4}'
720 height
# echo "width:720 height:360" | awk -F'[ :]+' '{print $2,$4}'
720 360

注意:

在awk中,当记录分隔符指定为空字符串时,awk会将多个连续的空白看做一个单一的记录分隔符。此外,awk还会忽略开头和结尾处的空白。

awk支持正则表达式形式的记录分隔符,你可以改成其它的正则表达式来进行测试。上面虽然介绍了awk中使用多个记录分隔符的写法,但是这些记录分隔符都是单个字符,如果记录分隔符是个字符串怎么办呢?

之前说过,awk支持正则表达式形式的记录分隔符,那就写个正则表达式就好,比如要指定分隔符为one和two

# echo "i have two apples and one banana" | awk -F'one|two' '{for(i=1;i<=NF;i++)print i,"="$i}'
1 =i have
2 = apples and
3 = banana

awk支持多个记录分隔符的写法的更多相关文章

  1. 如何解决vue项目中 scss 不支持 scoped 的 /deep/ 穿透写法

    如何解决vue项目中 scss 不支持 scoped 的 /deep/ 穿透写法 用过vue的人估计都用过scoped样式属性,但有时候需要穿透样式,啥办? 很多资料都说用>>> 或 ...

  2. linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

    本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...

  3. awk命令的用法实战

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn8AAADvCAIAAAAM1SXGAAAgAElEQVR4nO2dz8s125XXHx9oTXMHUZ

  4. linux之AWK实战【转】

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn8AAADvCAIAAAAM1SXGAAAgAElEQVR4nO2dz8s125XXHx9oTXMHUZ

  5. awk命令详解

    搜索 纠正错误  添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...

  6. (转载)(收藏)Awk学习详细文档

    awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术 ...

  7. awk命令

    awk 手册   原文 Table of Contents 1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2 ...

  8. awk 正则表达式

    awk 正则表达式.正则运算符详细介绍 前言:使用awk作为文本处理工具,正则表达式是少不了的. 要掌握这个工具的正则表达式使用.其实,我们不必单独去学习它的正则表达式.正则表达式就像一门程序语言,有 ...

  9. awk程序设计语言之-awk基础

    awk程序设计语言之-awk基础 http://man.linuxde.net/ 常用工具命令之awk命令 awk是一种编程语言,用于在Linux/Unix下对文本和数据处理.数据可以来自标准输入(s ...

随机推荐

  1. [未读]编写可测试的JavaScript代码

  2. PHP 函数的参数

    函数的参数 通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表. PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数.也支持可变数量的参数:更多信息请参照可变长度参数列表和涉及 ...

  3. 解决织梦 \include\userlogin.class.php on line 21(或16) 报错的方法

    用了下DEDECMS v5.7 SP1版本,发现很多问题,其中一个比较严重的是,架到服务器上的dede网站后台打开菜单选项卡得不能动,等半天显示505服务器错误,这个真让人纠结,在本地调试明明好好的, ...

  4. MVC ef 连接数据库

    1.创建数据库 2.创建表 <pre name="code" class="sql">CREATE TABLE [dbo].[Student]( [ ...

  5. ES-windos环境搭建(3)-kibana

    简介 Kibana是一个为ElasticSearch 提供的数据分析的 Web 接口.可使用它对日志进行高效的搜索.可视化.分析等各种操作. 下载 打开elasticseach官网,单击downloa ...

  6. thinkphp写的登录注册的小demo

    和asp.net类似,一个FormAction对应Form文件夹 demo结构: ‘ 对于项目结构有疑问的: http://www.thinkphp.cn/document/60.html login ...

  7. Easyui combobox如何默认选中第一项???

    以下代码可以实现combobox默认选中第一项,在实际开发中我们可能会用到! // 处理combobox默认选中的问题 <input id="user_type" class ...

  8. Java中常见编码格式及乱码解决方法

    一:设置编码格式 1.JSP文件 charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为"UTF-8",pageEncoding="UTF-8" ...

  9. 利用基于@AspectJ的AOP实现权限控制

    一. AOP与@AspectJ AOP 是 Aspect Oriented Programming 的缩写,意思是面向方面的编程.我们在系统开发中可以提取出很多共性的东西作为一个 Aspect,可以理 ...

  10. vijos 1190 繁忙的都市

    描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路 ...