开发者学堂课程【Linux文本处理、正则表达式与Vim:文本排序与搜索命令】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/592/detail/8351
文本排序与搜索命令
内容介绍
一.文本处理工具和正则表达式
分析文本的工具
文本数据统计:wc
整理文本:sort
比较文件:diff和patch
二.收集文本统计数据 wc
1.计数单词总数、行总数、字节总数和字符总数
2.可以对文件或 STDIN 中的数据运行 处理工 排序与
wc story.txt
39 237 1901 story.txt
行数 字数 字节数
3.常用选项
-| 只计数行数
-W 只计数单词总数
-C 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度
三.文本排序 sort
1.把整理过的文本显示在 STDOUT,不改变原始文件
sort [options] file(s)
2.常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项按照使用c字符分隔的X列来整理能够使用多次
四.Uniq
1.uniq 命令:从输入中删除前后相接的重复的行
2.uniq [OPTION]… [FILE]...
-c:显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行
注:连续且完全相同方为重复
3.常和 sort 命令一起配合使用:
sort userlist.txt | uniq -c
五.比较文件
比较两个文件之间的区别
diff foo.conf foo2.conf
5c5
< use widgets=no
---
>use widgets=yes
注明第5行有区别(改变)
六.复制对文件改变 patch
1.diff命的输出被保存在一种叫做“补丁”的文件中
使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件
2.Patch 复制在其它文件中进行的改变(谨慎使用)
适用 -b 选项来自动备份改变了的文件
diff -u foo.conf foo2.conf>foo.patch
patch -b foo.conf foo.patch
七.练习
1.找出 ifconfig “网卡名”命令结果中本机的 IPv4地址
2.查出分区空间使用率的最大百分比值
3.查出用户 UID 最大值的用户名、UID 及 shell类型
4.查出/tmp 的权限,以数字方式显示
5.统计当前 连接本机的每个远程主机IP的连接数,并按从大到小排序
八.Linux 文本处理三剑客
grep:文本过滤(模式:pattern)工具
grep,egrep,fgrep(不支持正则表达式搜索)
sed:stream editor,文本编辑工具
awk:Linux 上的实现 gawk,文本报告生成器
九.grep
1.grep: Global search REgular expression and Print out the line
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件
2.grep [OPTIONS] PATTERN [FILE..]
grep root /etc/passwd
grep"$USER" /etc/passwd
grep '$USER' /etc/passwd
grep `whoami`/etc/passwd
十.grep 命令选项
1.--color=auto:对四配到的文本着色显示
2.-v:显示不被 pattern 匹配到的行
3.-i:忽略字符大小写
4.-n:显示匹配的行号
5.-c:统计配的行数
6.-0:仅显示匹配到的字符串
7.-q:静默模式,不输出任何信息
8.-A#:after,后#行
9.-B#:before,前#行
10.-C#:context前后各#行
11.-e:实现多个选项间的逻辑or关系
grep-e 'cat’ -e ‘dog’ file
12.-w:匹配整个单词
13.-E:使用 ERE
14.-F:相当于 fgrep,不支持正则表达式
15.-f file:根据模式文件处理