文本处理工具

时间:2022-11-18 14:33:51

抽取文本的工具

查看文件内容:cat 、less

cat:cat [OPTION]... [FILE]...

-E: 显示行结束符$
-n: 对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行

less:一页一页地查看文件或STDIN输出

查看时有用的命令包括:
/文本搜索 文本
n/N 跳到下一个 或 上一个匹配
less 命令是man命令使用的分页器

文件抽取:head(行首) 、tail(行尾)

head:head [OPTION]... [FILE]...
-c #: 指定获取前#字节
-n #: 指定获取前#行
-#: 指定行数

tail:tail [OPTION]... [FILE]...
-c #: 指定获取后#字节
-n #: 指定获取后#行
-#:指定行数
-f: 跟踪显示文件fd新追加的内容,常用日志监控
相当于 --follow=descriptor

按列抽取:cut

cut [OPTION]... [FILE]...
-d : 指明分隔符,默认tab
-f :取需选定的列
-c 按字符切割
--output-delimiter=STRING指定输出分隔符

按关键字抽取:grep

grep命令选项
--color=auto: 对匹配到的文本着色显示
-v: 显示不被pattern匹配到的行
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数
-o: 仅显示匹配到的字符串
-q: 静默模式,不输出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式

分析文本的工具

文本数据统计:wc

收集文本统计数据wc
计数单词总数、行总数、字节总数和字符总数
常用选项
-l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度

整理文本排序sort

把整理过的文本显示在STDOUT,不改变原始文件
sort [options] file(s)
常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项按照使用c字符分隔的X列来整理能够使用多次文本:sort

uniq 删除相邻的重复行合并一个行

  • -c 显示有几个相邻的行合并成一个
  • -u 仅显示不曾重复的行

比较文件:diff

比较两个文件之间的区别

练习: 1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址 ifconfig eth0 |head -2 |tail -1 |tr -s " " : |cut -d: -f4 2、查出分区空间使用率的最大百分比值 df |tr -s " " : |cut -d: -f5 |sort -n |tail -n1 3、查出用户UID最大值的用户名、UID及shell类型 cat /etc/passwd |cut -d: -f1,3,7  |sort -t: -k2 -nr |head -n1 4、查出/tmp的权限,以数字方式显示 stat /tmp |head -n4 |tail -n1 |cut -d " " -f2 |cut -d / -f1 |tr -d "("
5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 远程主机| sort -r | unip -c |sort -nr