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

相关推荐

  • Zabbix 发现功能中文文档

    说明:本文译自 zabbix 官方文档 Discovery 一节,包括 Network Discovery, Auto Registration和Low level discovery,同时对文章进行了补充以及更详细的说明。适用于Zabbix 2.0 版本。 发现包括三种类型: 网络发现 ( Network discovery) 主动客户端自动注册 ( Ac…

    Linux干货 2015-03-12
  • 逻辑卷LVM

    逻辑卷LVM 简介     在实际生产应用中,磁盘的分区的容量是固定不变的,当出现分区容量不足的情况,除了新加磁盘,还有没有其他方法呢?    逻辑卷(LVM)的概念就出现了,全称叫Logical Volume Manager。它的作用是允许对卷进行方便操作的抽象层,包括重新设定…

    Linux干货 2017-08-12
  • AB测试命令

    [root@chuangyuegou ~]# ab -n 10000 -c 49 http://192.168.0.99/index.html This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,…

    Linux干货 2016-12-05
  • 几个常用命令、inode及第二周作业

    一、cd命令 1、功能 用来进行不同目录间的切换,属于内部命令。 2、语法 cd  [-L|-P]  [dir] -L : 如果要切换到的目录是一个符号链接,就直接切换到符号链接名表示的目录(默认)。 -P : 如果要切换到的目录是一个符号链接,直接接切换到符号链接指向的目标目录。 3、用法说明 cd 或 cd ~ :进入当前用户的主目录…

    Linux干货 2016-08-02
  • Linux网络属性配置,计算机基础

    Linux网络属性配置,计算机基础 Linux网络属性配置(1): 计算机网络通信:TCP/IP 通过流式化数据相互通信,通过双方一致的时钟频率来完成信号传输; 有两种方式传输:同步传输,异步传输; 借助于介质传输:同轴电缆、网线、无线等; 要想相互通信,也要必须遵循一种(复杂)组织机制,就产生了协议; 通过把协议分层,来分别解决传输过程中各种复杂的操作; …

    Linux干货 2016-09-05
  • N26 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 思路:    首先使用 who 查看当前系统上所有已经登录的用户,然后用 cut 或 awk 截取用户名,最后使用 sort 或 unqi 去除重复信息。命令:    who | cut -d’ ‘ -f1 …

    Linux干货 2017-02-25