文本处理工具

如何利用文本你工具查看、分析、统计文本

显示文件内容工具:cat、more、less

cat 命令

#cat命令是不嫩查看二进制文件的哦,会出现乱码!
#cat命令既有标准输入又有标准输出
-E   可以显示文本当中的换行符$
-A   显示一些不可见的字符比如tab
-n   加行号,仅显示,并不会改变问价内容
-b   给非空行加行号
-s   压缩文件单中相邻的空白行
相关小命令  
tac   命令与cat相反,其效果也与cat相反为将文件按行方向显示  
nl    也是给非空行加行号,等同于cat -b  
rev   是将文件按列以相反方向显示  
hexdump、od、xxd   都是可以查看二进制文件的命令

截取文件内容工具:head、tail

head、tail 命令

head、tail命令都可用于截取文件

head命令直接跟文件的话,默认是截取文件的前十行信息
-c#   指定截取文件的前#个字节
-n#   指定截取文件的前#行
-#    和-n#效果一致
tail命令直接跟文件的话,默认是截取文件的后十行信息
-c#   指定获取后#个字节
-n#   指定获取文件的后#行
-#    和-n#效果一致
#不同于head的是tail有一个额外的功能,那就是可以跟踪文件的尾端的内容,一般用于监控日志文件。
-f   跟踪文件的描述符,当源文件被删除时不提示,并且当新建一个与删除的文件同名的文件的时候哪怕文件内容都一致,但是-f都不会继续跟踪了,因为新建的文件描述符与源文件描述符不一致。
-F   跟踪文件名,当源文件被删除时会有提示,当新建一个与原文件同名的文件时,tail会继续跟踪,哪怕文件内容已被改变,因为-F只关心文件名是否一致。

按列抽取文件内容

cut命令

cut同样是一个抽取文件内容命令,只不过这个命令是采取按列来抽取的
-d   指明分隔符
-f#  指定以分隔符分隔后想要取的列
# 指定第#个字段
#,# 截取多个不连续的字符  例:1,3,5
#-# 截取多个连续的字符 例:1-5
-c   按字符分割
paste是一个用于合并文件的命令
-d   可用于指定分隔符,如果不指定,默认的分隔符是TAB
-s   将两个文件所有的行合成一行进行合并显示
示例:
file1内容为:
1
2
3
file2内容为:
a
b
c
#下列^I为TAB键
paste file1 file2 结果显示为:
1^Ia
2^Ib
3^Ic
paste -s file1 file2 结果显示为:
1^I2^I3
a^Ib^Ic

分析文本的工具

wc命令

wc可用于文本数据统计

-l   显示文件行数
-w   显示文件单词数
-c   显示问价字节数
-m   显示文件字符数
-L   显文件最长行的长度

sort

sort命令可用于整理文件

-t :   以:做为字段的分隔符
-k #   选项按照使用:字符分隔的#列
-n     按照数字进行排序
-r     按倒序排列
-R     随机进行排序
-f     忽略大小写
-u     去重,把相邻的相同行进行合并

uniq

uniq命令是把重复的相邻的行压缩成一行

-c   显示重复重复的次数
-d   仅显示重复的行
-u   仅显示不重复的行
注:连续且完全相同为重复,uniq长和sort命令一起使用。

diff、patch

#diff用于比较两个文件的不同
-u    可以列出两个文件跟多不同的信息

#patch复制在其他文件中进行的改变
-d    起到备份作用

#如果将f1.txt、f2.txt两个文件对比结果重定向 > 生成新的文件diff.log,此时如果f1.txt或f2.txt当中有一个文件被删除,可以使用patch命令将被删除的文件找回。因为生成的新文件名会自定义为没被删除的那个文件名,所以在找回文件之前我们要先将没被删除的那个文件进行备份-b。列如:patch -b f1.txt diff.log、那么f1.txt文件里的内容将会是我们找回的f2.txt的内容,f1.txt.orig备份文件里的内容将是我们原有f1.txt里的内容。
    原文作者:wx5d806abe37da1
    原文地址: https://blog.51cto.com/14547542/2445735
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞