awk

awk是一种程序语言,对文档资料的处理具有很强的功能。awk擅长从格式化报文或从一个大的文本文件中抽取数据。

awk的命令格式为:

  1. awk [-F filed-separator] “commands” input-file(s)

awk [-F filed-separator] “commands” input-file(s)

每一个命令(commands)都由两部分组成:一个模式(pattern)和一个相应的动作
(action)

  1. /pattern1/{action1}
  2. /pattern2/{action2}
  3. /pattern3/{action3}

/pattern1/{action1} /pattern2/{action2} /pattern3/{action3}

awk将一行文字按分隔符(filed-separator)分为多个域,依次记为$ 1,$ 2 . . . $ n。$0代表所有域值。因此awk更适合于以域为单位来处理文件。加之ARGIND等内置变量,使awk能处理多个文件。典型的应用为查找一个文件中的某个字段是否在另一个文件中出现。例子见我的另一篇博客【awk】诡异的错误,linux和windows换行的区别。但由于$0代表所有域,即整行,因此awk也有简单行处理能力。

sed

sed 是一个精简的、非交互式的编辑器。它能执行与编辑vi和emacs相同的编辑任务,但sed编辑器不提供交互使用方式,只能在命令行下输入编辑命令。

sed的命令格式为:

  1. sed [options] 'command' file(s)
  2. sed [options] -f scrīptfile file(s)

sed [options] 'command' file(s) sed [options] -f scrīptfile file(s)

作为编辑器,当然少不了插入(a/、i/)、删除(d)、查找替换(s)等命令。详见sed命令详解 。

总结

  1. 如果文件是格式化的,即由分隔符分为多个域的,优先使用awk
  2. awk适合按列(域)操作,sed适合按行操作
  3. awk适合对文件的抽取整理,sed适合对文件的编辑。
  4. (想到再补~)

Linux下sed,awk,grep,cut,find学习笔记的更多相关文章

  1. 【转帖】vim/sed/awk/grep等文件批处理总结

    vim/sed/awk/grep等文件批处理总结 https://www.cnblogs.com/cangqiongbingchen/p/9760544.html Vim相关操作 1.基础 * 和 # ...

  2. 1.Sed | Awk | Grep | Find

    1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...

  3. Linux下程序的机器级表示学习心得

    Linux下程序的机器级表示学习心得 上周学习完Linux程序的机器级表示后,对于其中有些还是掌握的不太透彻.对于老师提出的关于本章一些细节的问题还是有不会,所以又重新温习了一下上周的学习内容,以下为 ...

  4. 《Linux内核分析》第八周学习笔记

    <Linux内核分析>第八周学习笔记 进程的切换和系统的一般执行过程 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163 ...

  5. 《Linux内核分析》第七周学习笔记

    <Linux内核分析>第七周学习笔记 可执行程序的装载 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...

  6. 《Linux内核分析》第六周学习笔记

    <Linux内核分析>第六周学习笔记 进程的描述和创建 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...

  7. 《Linux内核分析》第五周学习笔记

    <Linux内核分析>第五周学习笔记 扒开系统调用的三层皮(下) 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.c ...

  8. Linux下Ganglia集群监控安装、配置笔记

    http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下Ganglia集群监控安装.配置笔记 Gangli ...

  9. 《Linux内核分析》第三周学习笔记

    <Linux内核分析>第三周学习笔记 构造一个简单的Linux系统MenuOS 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.stud ...

随机推荐

  1. Java调用Python脚本

    今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...

  2. (step6.3.5)hdu 1281(棋盘游戏——二分图的完美匹配)

    题目大意:本体是中文题.读者可以直接在OJ上看 解题思路: 1)完美匹配:所有的端点都是匹配点 2)对于二分图的完美匹配,我们需要用一个数组来存储匹配点.(而二分图的其他问题(我们则可以直接使用变量来 ...

  3. iOS/Xcode异常:reason = “The model used to open the store is incompatible with the one used to create the store”

    reason=The model used to open the store is incompatible with the one used to create the store 出现上述异常 ...

  4. IOS SWIFT基本画图教程

    OS SWIFT基本画图教程 其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考. 首先,建立一个Swift类,继承UIView这个类,然后重写 func drawRect(rect ...

  5. 【Eclipse】Tomcat 改变发布路径

    关闭服务,删除里面的所有项目,clean,然后双击服务,发布路径修改就可以点击了.当重新发布了项目后,发布路径修改的按钮又会恢复不可点击状态.

  6. mvc导航配置

    <?xml version="1.0" encoding="utf-8" ?><Configuration> <Navigatio ...

  7. mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    原文:mysql not in.left join.IS NULL.NOT EXISTS 效率问题记录 mysql not in.left join.IS NULL.NOT EXISTS 效率问题记录 ...

  8. shiro权限框架

    权限的组成部分:用户 资源 角色 权限 数据库关系表设计是根据自己项目需求设计的 account表role表(id,rolename)account_role(id,aid,rid)permissio ...

  9. WPF中StringFormat 格式化 的用法

    原文 WPF中StringFormat 格式化 的用法 网格用法 <my:DataGridTextColumn x:Name="PerformedDate" Header=& ...

  10. Scriptcase在线试用开发环境

    现在,你可以通过浏览器在线试用的方式,体验Scriptcase的高效快速开发方式. 只需要有上网环境就可以使用: 兼容几乎所有的浏览器(IE.Firefox.Chrome.Opera……): 客户端无 ...