标签:文本处理工具
1、cat、tac、rev命令-文件查看
1)、cat命令
cat [OPTION]... [FILE]...
命令中的...表示可用多个选项查看多个文件
-E:显示行结束符$
-n:对显示出的每一行进行编号
-A:显示所有控制符,包括空格、tab、换行等多种控制符
-b:只对非空行编号
-s:压缩连续的空行成一行
此外文件合并也可以使用cat命令实现,例如#cat fi ffi > fffi,意思是把fi和ffi文件合并进入fffi文件,其中fffi文件中文件内容是按ffi文件内容接着fi文件内容列示的
2)、tac命令(此命令的作用是使文本内容反过来显示,例如第一行列为最后一行,第二行列为倒数第二行,等等,依次反过来显示)
3)、rev命令(此命令的作用是使文本内容每行倒过来显示,就是每一行的最后一个字符在第一个位置显示,倒数第二个字符在第二个位置显示,等等,依次倒过来显示)
2、more和less命令-分页查看文本内容
1)、more:分页查看文件
more [OPTIONS...] FILE...
空格键翻页显示,但是不能往回翻页
-d:显示翻页及退出提示,例如显示“press space to continue,q to quit”提示信息
2)、less:一页一页地查看文件或STDIN输出
查看时有用的命令包括:
/文本搜索 文本 ,从当前位置往下搜索
?文本搜索 文本,从当前位置往上搜索
n/N跳到下一个 or 上一个匹配
less命令是man命令使用的分页符
3、head、tail命令-显示文本前或后行内容
1)、head命令显示文本前行内容
head [OPTION]... [FILE]...
-c #:指定获取前#字节
-n #:指定获取前#行
-#:指定前几行数
2)、tail命令显示文本后行内容
tail [OPTION]... [FILE]...
-c #:指定获取后#字节
-n #:指定获取后#行
-#:指定后几行数
-f:跟踪显示文件新追加的内容, 常用日志监控
例如在一个端口执行#tail -n 0 -f file,则在另一个端口执行#echo "string" >> file时会在前一个端口实时显示输入的文本内容;或者加上&号实现后台实时显示,例如#tail -n 0 -f file &可实现在另一个端口执行#echo "string" >> file时会在前一个端口实时显示输入的文本内容,而且前一个端口仍可以进行其它操作
4、按列抽取文本cut和合并文件paste
1)、cut命令
cut [OPTION]... [FILE]...
-d:指明分隔符(所谓分隔符是文本中的标志性的可作为文本内容分段的符号,可以是字母、空格、标点符号等,默认tab)例如#cut -d:-f2 file,其中的:符号就是指明的分隔符,2是第二个字段
-f#:所谓一个字段就是分隔符之间的一段内容
#:第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割,例如#cut -c44-46 file即是显示file文件的第44个字符到第46个字符之间的列
--output-delimiter=STRING指定输出分隔符,其中STRING即是指代要指定的分隔符,例如*号
[root@centos7 ~]# getent passwd |cut -d: -f1,3 --output-delimiter=*即是把抽取的列之间的分割符指定为*号,否则就是:号
2)、paste命令
paste合并两个文件同行号的内容到一行
paste [OPTION]... [FILE]...
-d:指定合并后文件内容之间的分隔符,默认用TAB
-s:所有行合成一行显示,即是每个文件的所有行内容合成一行后,文件间再实现内容合并
#paste f1 f2,即是以tab为分隔符
#paste -d: f1 f2,当然也就是指定:号为分隔符
#paste -s f1 f2
5、wc命令-收集文本统计数据
计数行总数、单词总数、字符总数,可以对文件或STDIN中的数据运行
$ wc story.txt
39 237 1901 story.txt
行数 单词数 字符数
使用 -l 来只计数行数
使用 -w 来只计数单词总数
使用 -m 来只计数字符总数
#wc可以进行标准写入操作,按Ctrl+d可以收集写入文本的统计数据
[root@centos7 ~]# ls | wc -l,输出的结果是20,说明其实ls的文件是一个一行显示的,只不过终端显示出来的不是一行一行显示的(不统计隐藏文件)
6、sort命令-文本排序
把整理过的文本显示在STDOUT,不改变原始文件
$sort [options] file(s)
对于非数字字符是按照特殊符号-字母顺序排列的
常用选项:
-r 执行反方向(由大到小)整理
-n 执行按数字大小整理,即是从小到大顺序排列
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique )删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项使用c字段界定符来分隔整理第X列
7、uniq命令-从输入中删除前后相接的重复的行
uniq [OPTION]... [FILE]...
-c:显示每行重复出现的次数;
-d:仅显示重复过的行;
-u:仅显示不曾重复的行;
注意-连续且完全相同方为重复
常和sort 命令一起配合使用,例如#sort userlist.txt | uniq -c
8、diff命令-比较两个文件之间的区别
#diff fi ffi,比较fi与ffi两个文件的区别,并输出比较信息
#diff -u fi ffi,加上选项u输出“统一的(unified)”diff格式文件,最适用于补丁文件 ,所以一般此统一的输出重定向到指定的文件中,譬如diff.log
如果ffi因为误删而丢失,可以通过以下命令恢复找回ffi文件:
[root@centos7 ~]#patch -b fi diff.log
此时[root@centos7 ~]#ls中会生成fi.orig文件,其实其就是原来的fi,因为其是fi的备份;同时fi储存的信息变为ffi,恢复找回的ffi就是fi文件,内容是一样的,可以把fi的文件名改为ffi
9、
标签:文本处理工具
原文地址:http://11629193.blog.51cto.com/11619193/1834836