Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

有点拖了,没有好好整理之前的内容,拖延症害死人…..Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

这次介绍一些有趣的小文本处理工具,可以方便截取文本内容、排序、备份之类的。

head

用法:head [选项]… [文件]…

head[OPTION]…[FILE]…

默认将每个指定文件的头10行显示到标准输出。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或者文件为“-“,则从标准输入读取数据

-c  –bytes=[-]k 显示每个文件的前k字节内容;如果附加“-“参数,则除了每个文件的最后K字节数据外显示剩余全部内容

-n  –lines=[-]k 显示每个文件的前k行内容;如果附加“-“参数,则除了每个文件的最后K 行外显示剩余全部内容

-q  –quiet–silent 不显示包含给定文件名的文件头

-v  –verbose 总是显示包含给定文件名的文件头

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)


tail

tail[OPTION]…[FILE]…

tail – 输出文件的末尾部分,默认在标准输出上显示每个文件的最后10行,如果多于一个文件会在每一段输出前会给出文件名作为文件头,一个接一个地显示。如果不指定文件,或者文件为“-“,则从标准输入读取数据。

-c  –bytes=N 输出最后N个字节

-n  –lines=N 输出最后N行而非默认的最后10

-q  –quiet –silent 从不输出给出文件名的首部

-v  –verbose 总是输出给出文件名的首部

-f  –follow[={name|descriptor}] 当文件增长时输出后续添加的数据,动态显示。跟踪显示文件新追加的内容常用日志监控。

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

拓展:与head相似,如果N(字节或者行数)的第一个字符为`+’,那么从每个文件的开头算起的第N项开始显示,否则,显示该文件的最后N项。

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)


cut

按列抽取文本

cut[OPTION]…[FILE]…

-d –DELIMITER:指明分隔符,默认为Tab,一般与-f 连用。

-f 选取第几列

指定某一列

n-m  指定n列到m

n,n-m  混合指定

–output-delimiter 指定输出符

示例:截取用户名与UID且以“+”符号为分隔符。

cut -d: -f1,3 –output-delimiter=’+’ /etc/passwd

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

-c  [n-m]按字符切割 第n个字符到第m个字符

-b  [n-m]按字节切割 第n个字节到第m个字节

示例:截取/etc/passwd文件的前四个字符。

cut -c 1-4 /etc/passwd

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

经典练习题:显示当前主机第一个网卡的IP地址

ifconfig |head -n 2| tail -n 1| tr -s ‘ ‘ : |cut -d: -f4


paste

将每个指定文件里的每一行整合到对应一行里写到标准输出,默认用制表符分隔。如果没有指定文件,或指定文件为”-“,程序将从标准输入读取数据。

paste[OPTION]…[FILE]…

-d分隔符:指定分隔符,默认用TAB

-s: 不使用平行的行目输出模式,而是每个文件占用一行

paste f1 f2

paste -s f1 f2

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)


wc

收集文本统计数据

wc命令的功能为统计指定文件中的字节数、单词数、行数并将统计结果显示输出

可以对文件或STDIN中的数据运行

-c  –bytes 打印字节数
-m  –chars
打印字符数
-l  –lines
打印行数
-L  –max-line-length
打印最长行的长度
-w  –words
打印单词数

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)


sort

文本排序

把整理过的文本显示在STDOUT,不改变原始文件

sort [options] file

常用选项

sort

 -r 执行反方向(由上至下)整理

   -n 执行按数字大小整理

   -f 选项忽略(fold)字符串中的字符大小写

   -u 选项(独特,unique)删除输出中的重复行

   -t c 选项使用c做为字段界定符

   -k X 选项按照使用c字符分隔的X列来整理能够使用多次

示例:

cat /etc/passwd | sort

#排序默认以第一个数据排序,默认以字符串形式排序,以a开始升序排序,首字母相同则比较下一位的顺序。

cat /etc/passwd | sort -t: -k3

#/etc/passwd中的以“:”为间隔符,对其第三栏排序,默认以第一数据排序,相同的话比较下一位的顺序。

cat /etc/passwd | sort -nt: -k3

#/etc/passwd中的以“:”为间隔符,对其第三栏排序,按数字整体大小升序排列。

cat /etc/passwd | sort -rnt: -k3

#/etc/passwd中的以“:”为间隔符,对其第三栏排序,按数字整体大小以升序相反的方式降序排列。


uniq

uniq命令:从输入文件或者标准输入中删除前后相接的重复的行,注意:连续且完全相同方为重复

uniq[OPTION]…[FILE]…

-c  –count 显示每行重复出现的次数

-d  –repeated 仅显示重复过的行

-D  –all-repeated[=delimit-method 显示所有重复的行

-u  –unique 仅显示不曾重复的行

-f  –skip-fields=N   比较时跳过前N

-s, –skip-chars=N    比较时跳过前N 个字符

-I  –ignore-case     在比较的时候不区分大小写

-w  –check-chars=N   对每行第N 个字符以后的内容不作对照

常和sort命令一起配合使用:

sort test | uniq –c

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)


接下来介绍比较实用的功能,需要diff与patch功能结合使用。

diff

比较两个文件之间的区别

命令:diff

patch

让用户利用设置修补文件的方式,修改,更新原始文件。

命令:patch

上面两条命令相结合可以做出大事——“打补丁”或“更新”

diff命令的输出被保存在一种叫做“补丁”的文件中

使用-u选项来输出“统一的(unified)”diff格式文

件,最适用于补丁文件。

patch复制在其它文件中进行的改变(注意:要谨慎使用)

适用-b选项来自动备份改变了的文件

示例:

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

换个角度,你也可以理解为对文件进行更新。同时,不要担心旧版文件的丢失,每次更新都会产生后缀为“.orig”的文件,里面存储着你的旧版文件。

Mozart的剑(文本处理工具)——贰剑(head、tail、cut、sort、uniq、wc、diff、paste、patch)

原创文章,作者:Mozart,如若转载,请注明出处:http://www.178linux.com/83083

(0)
MozartMozart
上一篇 2017-07-31 23:43
下一篇 2017-08-02 11:01

相关推荐

  • Linux文件管理命令详解–cp,mv,rm

    在Linux系统里平时需要对目录文件做一些管理操作,其中最基本的有cp,mv,rm等命令: cp命令:copy 复制   其中包含源文件,目标文件: copy分为单源复制和多源复制,详解如下:               单源复制:cp [option]…[-T] S…

    Linux干货 2016-11-06
  • FHS文件系统以及各目录功能

    FHS:Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理,规范在根目录(/)下面各个主要目录应该放什么样的文件。 …

    Linux干货 2016-10-17
  • “拆”解RAID工作原理

    一、什么是RAID RAID:Redundant Arrays of Inexpensive(Independent)Disks,廉价(独立)的冗余磁盘阵列。1988年由加利福尼亚大学伯克利分校提出。使用多个相对便宜的磁盘通过某种方式组合成一个“阵列”,来提供更好的性能、冗余,或两者同时提供。 性能提高:     &n…

    Linux干货 2016-11-22
  • Mariadb数据库备份恢复系列(三):xtrabackup物理备份工具之增量备份

       实验三:利用xtrabackup+二进制日志实现增量备份和恢复数据库 本例中实现的是将所有的增量日志都通过apply-log的步骤同步到完全备份文件中,如果希望利用增量日志还原到固定某次增量备份的数据,则不能使用本例中方式对所有的备份都进行apply-log操作,如果希望利用增量日志还原到固定哪次增量备份的数据,则将最初的完全备份的数据、和期望还原到某…

    Linux干货 2016-11-24
  • Linux运维学习历程-第二天-虚拟机的配置

    学习Linux我自己的感觉是可以按Linus的哲学思想来学习 比如一切皆文件,那我们首先可以记住一些重要的常见的路径和文件,并知道有什么作用,这样在初期学习时,我们要干什么时,知道在哪里找;   而命令我们可以每天记忆并练习一些,本身Linux的基本命令都是一下短小精悍的而且有些命令名本身就是英文单词,像date命令就是和系统时间有关的命令用来显示…

    Linux干货 2016-08-03
  • Linux中的文本处理工具

    本章内容:   一、各种文本工具来查看、分析,统计文本文件   二、grep   三、正则表达式   四、扩展正则表达式   五、Sed 具体内容如下: 一、抽取文本的工具:      文件内容:less和cat      文件截取:head和tai…

    Linux干货 2016-08-08