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
下一篇 2017-08-02

相关推荐

  • 文件服务及vsftpd的配置

    文件服务:     ftp:应用层,C/S,文件共享;file transfer protocol;     nfs,cifs:文件系统接口,网络文件系统;         nfs:network f…

    Linux干货 2016-10-15
  • ifconfig命令学习

    ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。 语法 ifconfig(参数) 参数 add<地址>:设置网络设备IPv6的ip地址; del&lt…

    Linux干货 2017-07-02
  • Linux网络属性管理

    Linux网络属性管理 linux的网络配置方法有多种,而且随发行版及版本而略微不同。我目前的测试环境为CentOS6和CentOS7。 常用的网络配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。 首先:命令方法介绍 一、命令简介 ifconfig:是个比较传统的命令,可以配置网络接口的启用及关闭,IP地址等…

    系统运维 2016-05-29
  • 第四周作业

    正则表达式练习

    Linux干货 2017-12-25
  • keepalived的初级使用

        1、双主模型的ipvs高可用   一、双主模型的ipvs高可用     1)网络结构图       2)、ipvs的类型是dr模型,调度算法是rr       RS1和RS2都是centos6.8 对RS1和RS2的配置:…

    Linux干货 2017-05-15
  • 计算机网络基础

    计算机网络基础 分层的网络模型 网络发展到今天,规模很庞大,内容很复杂,不利于网络的管理和教学。网络分层可以:降低网络结构的复杂性、把各层的接口标准化、简化模块设计、确保技术的互操作性、加快发展速度以及简化教学过程。 OSI模型——国际标准:根据国际标准化组织( ISO,International Standards Orgnization)提案,计算机网络…

    Linux干货 2016-11-22