914624-红帽-RHCE培训-单元8

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 能使用多次
8-10
淘汰重复行 sort 和 uniq
• sort –u :从输入中删除重复行 • uniq :从输入中删除重复的前后相接的行
– 使用 -c 选项来计数 发生次数 – 和 sort 命令一起使用效果最佳:
$ sort userlist.txt | uniq -c
8-11
比较文件 diff
8-20
练习序列2:
diff 和 patch
• 练习背景:参见教材P.153。 • 练习目标:参见教材P.153。 • 练习说明:参见教材P.153。
8-21
练习序列3:
使用正则表达式的流编辑
• 练习背景:参见教材P.155。 • 练习说明:参见教材P.155。
8-22
练习序列1:
答案
• 参见教材P.156。
$ cut -d: -f1 /etc/passwd $ grep root /etc/passwd | cut -d: -f7
• 使用 –d 来指定区分列的定界符(默认为TAB) • 使用 –f 来指定要显示的列 • 使用 –c 来按字符切割
$ cut -c2-5 /usr/share/dict/words
– 多个文件被连锁(concatenated)在一起
• less :一页一页地查看文件或STDIN输出
– 查看时有用的命令包括: ➢ /文本 搜索文本 ➢ n/N 跳到下一个/上一个匹配 ➢ v 在一个文本编辑器中打开文件
• less 命令是man命令使用的分页器
8-4
查看文件的部分截取
head 和 tail
8-16
用于复杂搜索的特殊字符
正则表达式
• 正则表达式(regular expression , regex)
– 是指使用特殊字符的搜索模式。 ➢这些特殊字符代表它们的原义以外的意义。
• ^代表行首 • $代表行尾 • 和 bash中一样的字符类别:
– [abc]、[^abc] – [[:upper:]]、[^[:upper:]]
单元 8
文本处理工具
8-1
目标
学习了本单元后,你应该能够:
• 使用工具来抽取、分析、和处理文本数据
8-2
抽取文本的工具
• 文件内容:less 和 cat • 文件截取:head 和 tail • 按列抽取:cut • 按关键字抽取:grep
8-3
查看文件内容
• cat :通过STDOUT显示一个或多个文件
• head :显示文件的前10行
– 使用 –n 来改变要显示的行数
• tail :显示文件的最后10行
– 使用 –n 来改变要显示的行数 – 使用 –f 来“跟随”对文件的后续补充
➢对监控日志文件非常有用!
8-5
按关键字抽取文本
grep
• 显示文件或STDIN中匹配了某种模式的文本行
$ grep 'john' /etc/passwd $ date --help | grep year
8-18
上机练习 8
字符串处理简介
• 目标:熟悉红帽企业版Linux系统上的几种字符串 处理工具。
• 系统设置:一台运行正常的、安装了红帽企业版 Linux系统的机器,其中有一个叫做“student”的 普通用户帐号,该用户的口令也是“student”
8-19
练习序列1:
有关字符串处理的练习
• 练习背景:参见教材P.151。 • 练习说明:参见教材P.151。
8-7
分析文本的工具
• 文本数据统计: wc • 整理文本:sort • 比较文本:diff 和 patch • 拼写检查:aspell
8-8
收集文本统计数据
• 计数单词总数、行总数、字节总数和字符总数 • 可以对文件或STDIN中的数据运行
$ wc story.txt 39 237 1901 story.txt
• 使用程序:
– grep、sed、less、其它
8-17
结束 单元 8
• 答疑 • 总结
– 抽取文本 ➢cat、less、head、tail、grep、cut
– 分析文本 ➢wc、sort、uniq、diff、patch
– 处理文本 ➢tr、sed
– 特殊搜索字符 ➢^、$、[abc]、[^abc]、[[:alpha:]]、[^[:alpha:]]等等
• 使用 -l 来只计数 行数 • 使用 -w 来只计数 单词总数 • 使用 -c 来只计数 字节总数 • 使用 -m 来只计数 字符总数(不显示)
8-9
整理文本
sort
• 把整理过的文本显示在STDOUT,不改变原始文件
$ sort [选项] 文件
• 常用选项
– -r 执行反方向(由上至下)整理 – -n 执行按数字大小整理 – -f 选项忽略(fold)字符串中的字符大小写 – -u 选项(独特,unique)删除输出中的重复行 – -t c 选项使用c作为字段定界符 – -k X 选项按照使用c字符分隔的字段X来整理
• 使用 -i 来不分大小写地搜索 • 使用 -n 来显示匹配的行号 • 使用 -v 来显示不包含模式的行 • 使用 -AX 在显示每项搜索匹配时包括匹配文本后
的X行上下文 • 使用 -BX 在显示每项搜索匹配时包括匹配文本前
的X行上下文
8-6
按列抽取文本 cut
• 显示文件或STDIN数据的指定列
复制对文件改变
patch
• diff 命令的输出被保存在一种叫做“补丁”的文件 中
– 使用 –u 选项来输出“统一的(unified)”diff格式文件, 最适用于补丁文件。
• patch 命令复制在其它文件中进行的改变(要谨 慎使用!)
– 使用 –b 选项来自动备份改变了的文件 $ diff -u foo.conf-broken foo.conf-works > foo.patch $ patch -b foo.conf-broken foo.patch
处理文本的工具 tr 和 sed
• 改变(translate)字符:tr
– 把一个集合内的字符转换成另一个集合中的相应字符 – 只读取STDIN中的数据
$ tr 'a-z' 'A-Z' < lowercase.txt
• 改变字符串:sed
– 流编辑器(stream editor) – 在一个文本流上进行 搜索/替换 操作 – 通常不改变源文件 – 使用 -i.bak 来备份,并改变源文件
8-13
使用aspell来检查拼写
• 交互式检查文件中的拼写
$ aspell check letter.txt
• 非交互式地在STDIN中列举拼错的单词
$ aspell list < letter.txt $ aspell list < letter.txt | sort -u | wc -l
8-14
8-23
练习序列3:
答案
• 参见教材P.157。
8-24
• 比较两个文件之间的区别
$ diff foo.conf-broBaidu Nhomakorabeaen foo.conf-works 5c5 < use_widgets = no --> use_widgets = yes
– 注明第5行有区别(改变)
• diff 命令的图形化版本是gvimdiff
– 在vim-X11软件包中提供
8-12
8-15
sed
例子
• 给搜索和替换指令加引号! • sed的地址
sed 's/dog/cat/g' pets sed '1,50s/dog/cat/g' pets sed '/digby/,/duncan/s/dog/cat/g' pets
• 多个sed指令
sed -e 's/dog/cat/' -e 's/hi/lo/' pets sed -f myedits pets
相关文档
最新文档