1. cut命令

    cut命令用来操作文件的列,能够视为列编辑器;与之相应是大多数的行“编辑器”。如sed、grep、sort等,它们操作文本时,以行为单位。

    cut的主要功能就是输出文本的某一列或几列。对于英文文本,一个字符就占领一列,所以输出几列就是输出几个字符。

    主要选项例如以下:

    • -c : 指定要输出的列数,能够是单个数字,也能够是如3-5之类的范围。

      m@meng:~$ cat new
      apple 3
      Apple 7
      pear 6
      pear 4
      banana 1
      orange 11
      m@meng:~$ cut -c 1-6 new
      apple
      Apple
      pear
      pear
      banana
      orange
    • -b : 指定每行要输出的字节数。与-c选项基本一样,尤其对英文文本,由于一个英文字母就是一个字节(我认为把英文改成ASCII文本更合适)。

      m@meng:~$ cut -b 3 new
      p
      p
      a
      a
      n
      a
    • -f : cut更强大的地方在于处理格式化的文本,即每行能够分为几个字段的那种。似乎非常多命令都提供这样的功能,比方sort,可是做的都非常勉强。关键是它们对分隔符的识别太差了。在这方面。awk遥遥率先。

      -f选项用来指定输出哪个字段。默认的分隔符是tab。

      事实上多个空格似乎也能识别。有时间我会专门研究一下分隔符的问题。

      m@meng:~$ cut -f 2 new
      3
      7
      6
      4
      1
      11

    实际上new文件里名字和数字之间的分隔符并非tab,而cut却正确识别了;然而,这样的情况是不确定的,比方下例:

    m@meng:/etc/network$ sudo netstat -apn | sed '3,6 p' -n | cut -f 1
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2899/sendmail: MTA:
    tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1192/named
    tcp 0 0 0.0.0.0:538 0.0.0.0:* LISTEN 1251/gdomap
    tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 672/smbd

    这么明显的分隔都没能识别,源代码怎么写的???

    • -d : 指定分隔符。一般配合-f使用。分隔符一般仅仅能指定单个字符。
    • -s : 仅输出包括分隔符的行。它会覆盖-f的一些功能,由于仅仅有-f时,会同一时候输出不包括分隔符的行;加上-s选项后,就会删除掉没有包括分隔符的行。
    • –output-delimiter=str : 指定输出分隔符为str。

      默认与输入分隔符一致。

      m@meng:~$ cut --output-delimiter=: -f 1-2 new
      apple: 3
      Apple: 7
      pear: 6
      pear: 4
      banana: 1
      orange: 11
      m@meng:~$ cut --output-delimiter=: -c 1-4 new
      appl
      Appl
      pear
      pear
      bana
      oran

    显然,这个选项仅仅对不同字段之间有效。。。

  2. uniq命令

    能够检測出文本中反复的行,相似与sort中-u选项。

    • -d : 仅仅显示那些反复的行。

      m@meng:~$ cat new
      apple 3
      apple 3
      Apple 7
      pear 6
      pear 4
      banana 1
      orange 11
      m@meng:~$ uniq -d new
      apple 3
    • -c,–count : 在每行前面显示反复次数。

      m@meng:~$ uniq -c new
      2 apple 3
      1 Apple 7
      1 pear 6
      1 pear 4
      1 banana 1
      1 orange 11
    • -i : 忽略大写和小写。

    • -u : 仅输出不反复的行。
      m@meng:~$ uniq -u new
      Apple 7
      pear 6
      pear 4
      banana 1
      orange 11

    基本的就是这几个选项了。其它的比方-s、-f等,试了几次无论用。

Linux命令之文本处理(二)的更多相关文章

  1. Linux命令之vim(二)

    这一章主要介绍vim编辑器的内部使用方法和注意事项 vim编辑器有四种工作模式:正常模式.插入模式.命令模式.可视模式.简单的判断方法就是看底部,什么都没有就是正常模式,光标在编辑器最底下时则是命令模 ...

  2. QrenCode : linux命令行下生成二维码图片

    原文链接:http://wowubuntu.com/qrencode.html # 作者:riku/ / 本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接. 对于二维码大家应该并不陌 ...

  3. Linux命令之find(二)

    接上一篇Linux命令之find(一) (1).实例 1.列出当前目录下及子目录下所有的.txt文件 [xf@xuexi ~]$ ls 1.txt 3.txt b.txt 公共 视频 文档 音乐 2. ...

  4. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  5. Linux 命令详解(二)awk 命令

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具.之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Fami ...

  6. Linux命令的那些事(二)

    回顾Linux(一) 学习了以下命令: mkdir/rmdir/ls/rm/pwd/cd/touch/tree/man/--help 想具体了解请看上一篇文章跳转 在Linux中推荐大家使用subli ...

  7. 对Linux命令进一步学习vim(二)

    今天,进一步学习Linux相关的命令,可能会有重复的地方,但学习本来就是不断重复的过程.故作小记! 1.安装了:vim  ,,,一款Linux爱好者经常用到的ide sudo apt-get inst ...

  8. linux命令之文本查看

    vi掌握练习: 英文文档,相同的单词复制粘贴光标移动编辑等操作: cat:显示文件所有内容,小文件查看时使用. 缺点:文件大时不方便查看,文件很大时,会抢占系统资源,会出现命令崩溃. [zyj@loc ...

  9. linux 命令进阶篇之二

    一.预备知识 选取init的进程. cat :由第一行开始显示文件内容 tac:由最后一行开始显示,有没有发现和cat是反过来写的 more:一页一页的显示内容 less:与more相似,但是可以往前 ...

随机推荐

  1. Lucene.Net 2.3.1开发介绍 —— 二、分词(五)

    原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(五) 2.1.3 二元分词 上一节通过变换查询表达式满足了需求,但是在实际应用中,如果那样查询,会出现另外一个问题,因为,那样搜索,是只 ...

  2. Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾

    Linux统计文件数量 ls -l | grep "^-" | wc -l “^-”  一般文件 “^d” 目录文件 shell/vim中^表示开头 cat repatterns ...

  3. 一个完善的ActiveX Web控件教程

    免费打工仔:一个完善的ActiveX Web控件教程 出自Ogre3D开放资源地带   跳转到: 导航, 搜索 原作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一 ...

  4. android之LruCache源代码解析

    移动设备开发中,因为移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经经常使用到,以下来他是怎样实现的. 在package ...

  5. Mac必备软件推荐

    阅读原文http://littlewhite.us/archives/245 随着IOS的流行.Mac电脑也越来越多的进入人们的视野,和iPhone系列一样,苹果的Mac产品线也是软硬件完美结合.有着 ...

  6. 传智播客成都java培训中心秀就业

    传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...

  7. 一步步学习Linux开发环境搭建与使用

    00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...

  8. Visual Studio 2008中FormatX源代码格式化插件

    原地址:http://www.cr173.com/html/15492_1.html 我总是对组里的兄弟代码规范性近乎完美的要求,举个简单的例子: 1.  每个方法必须有注释,方法参数详细说明 2.  ...

  9. JAVA进阶----ThreadPoolExecutor机制(转)

    ThreadPoolExecutor机制 一.概述 1.ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程 ...

  10. 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)

    近期看老罗视频,做了一个简单的用户注冊系统.用户通过网页(JSP)输入用户名.真名和password,Servlet接收后通过JDBC将信息保存到MySQL中.尽管是个简单的不能再简单的东西,但麻雀虽 ...