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. oracle累计求和

    //将当前行某列的值与前面所有行的此列值相加,即累计求和: //方法一: with t as(      select 1 val from dual union all      select 3 ...

  2. STL front() ,back()和begin(),end()区别

    首先看看vector里面的: reference front(); const_reference front() const; queue里面的: value_type& front(); ...

  3. vc 获取网页内容(HTTP)

    BOOL bResult = FALSE; // 初始化WinInet 环境        HINTERNET hInternet = InternetOpen("CEHTTP", ...

  4. 1214 线段覆盖wiki oi

    题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,……N.这些坐标都是区间(-999,999)的整数.有些线段 ...

  5. [置顶] 我的GB28181标准开发里程碑——基于eXosip的IPC端与SPVMN注册成功

    昨天编译搭建好eXosip的开发环境后,今天完成了SIP注册功能,里程碑一战啊!加油加油,成功就在眼前! 今天基于eXosip做了一个IPC客户端,成功与公安部的SPVMN视频监控联网调测软件自测工具 ...

  6. 【Eclipse】离线插件安装

    1.在eclipse里根目录里,dropins里建一个目录,名字叫sonar(这个名字随便),再在svn下面建一个目录eclipse.在根目录里建一个目录links目录,并建一个sonar.link文 ...

  7. 怎样让jQuery和其它js库共存

    怎样让jQuery和其它js库共存 有时候需要同时使用jQuery和其它javascript,比如在joomla中默认的是motools,但很多人还是希 望能够使用jQuery,如果直接调用的话,由于 ...

  8. java --- 对象的创建过程

    java 对象创建的过程 存在了继承关系之后,对象创建过程如下: 1.分配空间.要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配.在分配的空间的时候 ...

  9. USACO Subset 整数划分01背包

    又是去理解了一次01背包. 这道题目的意思就是给你一个N (N < 40)表示有一个集合{1,2,3,... n} 你要将它划分成相等的两个子集合,求有几种划分方式 如果N是奇数,那么显然不能由 ...

  10. form的验证用法

    models.py forms.py html页面 第二种方法: 不继承model直接自定义内容 获得内容: if form.is_valid():            price = reques ...