中标麒麟Linux系统文本和文件处理介绍_第1页
中标麒麟Linux系统文本和文件处理介绍_第2页
中标麒麟Linux系统文本和文件处理介绍_第3页
中标麒麟Linux系统文本和文件处理介绍_第4页
中标麒麟Linux系统文本和文件处理介绍_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中标麒麟Linux系统文本和文件处理介绍技术创新,变革未来中标麒麟Linux服务器操作系统培训系列本章目标使用工具来抽取、分析和处理文本数据使用文件查询命令查看文件内容cat通过 STUOUT 显示一个或多个文件多个文件被连锁 (concatenated) 在一起less一页一页地查看文件或 STDIN 输出查看时有用的命令包括/文本 搜索 文本n/N 跳到下一个 / 上一个匹配v 在一个文本编辑器中打开文件less 命令是 man 命令使用的分页器查看文件的部分内容head显示文件的前 10 行使用 -n 来改变要显示的行数tail显示文件的最后 10 行使用 -n 来改变要显示的行数使用

2、-f 来“跟随”对文件的后续补充对监控日志文件非常有用按关键字抽取文本显示文件或 STDIN 中匹配了某种模式的文本行$ grep john /etc/passwd$ date -help | grep year使用 -i 来不分大小写地搜索使用 -n 来显示匹配的行号使用 -v 来显示不包含模式的行使用 -AX 在显示每项搜索匹配时包括匹配文本后 的 X 行上下文使用 -BX 在显示每项搜索匹配时包括匹配文本前 的 X 行上下文按列抽取文本显示文件或 STDIN 数据的指定列$ cut -d: -f1 /etc/passwd$ grep root /etc/passwd | cut -d:

3、-f7使用 -d来指定区分列的定界符 (默认为 TAB)使用 -f 来指定要显示的列使用 -C 来按字符切割$ cut -c2-5 /usr/share/dict/words收集文本统计数据计数单词总数、行总数、字节总数和字符总数可以对文件或 STDIN 中的数据运行$ wc story.txt392371901 story.txt使用 -I 来只计数行数使用 -w 来只计数单词总数使用 -c 来只计数字节总数使用 -m 来只计数字符总数 (不显示)整理文本把整理过的文本显示在 STDOUT - 不改变原始文件$ sort 选项 文件常用选项-r 执行反方向 (由上至下) 整理-n 执行按数字

4、大小整理-f 选项忽略 (fold) 字符串中的字符大小写-u 选项 (独特,unique) 删除输出中的重复行-t c 选项使用 c 作为字段定界符-k X 选项按照使用 c 字符分隔的字段 X 来整理能使用多次重复行操作sort -u从输入中删除重复行uniq从输入中删除重复的前后相接的行使用 -c 选项来计数发生次数和 sort 命令一起使用效果最佳$ sort userlist.txt | uniq -c文件比较diff比较两个文件之间的区别$ diff foo.conf-broken foo.conf-works5c5use_widgets = yes注明第 5 行有区别 (改变)d

5、iff 命令的图形化版本是 gvimdiff在 vim-X11 软件包中提供复制文件的改变diff 命令的输出被保存在一种叫做“补丁”的文件 中 使用 -u 选项来输出“统一的 (unified) ”diff格式 文件,最适用于补丁文件。patch 命令复制在其它文件中进行的改变 (要谨慎 使用!)使用 -b 选项来自动备份改变了的文件$ diff -u foo.conf-broken foo.conf-works foo.patch$ patch -b foo.conf-broken foo.patch检查拼写交互式检查文件中的拼写$ aspell check letter.txt非交互式地

6、在 STDIN 中列举拼错的单词$ aspell list letter.txt$ aspell list letter.txt | wc -I处理文本tr 和 sed改变 (translate) 字符tr把一个集合内的字符转换成另一个集合中的相应字符只读取 STDIN 中的数据$ tr a-z A-Z lowercase.txt改变字符串sed流编辑器 (stream editor)在一个文本流上进行搜索 / 替换操作通常不改变源文件使用 -i.bak 来备份,并改变源文件复杂搜索 代表行首$ 代表行尾和 bash 中一样的字符类别abc、abc:upper:、:upper:使用程序grep

7、、sed、less、其它locate查询系统上预建的文件数据库数据库必须被管理员更新搜索的是文件的全路径,不仅仅是文件名可能只搜索用户具备读取和执行权限的目录locate 命令实例locate foo搜索名称或路径中带有“foo”的文件locate -r .foo$使用 Regex 来搜索以“.foo”结尾的文件有用的选项-i 执行区分大小写的搜索-n X 只列举前 X 个匹配项目findfind 目录. 条件.在实时环境里搜索目录树比 locate 命令慢,但比它更准确如果没有给定起始目录,就会使用 CWD (当前所在 目录)如果没有给定条件,就会匹配所有文件可以在找到的文件上执行命令可能只

8、搜索用户具备读取和执行权限的目录find 命令和逻辑运算符搜索条件默认使用 AND 运算符连接。可以使用 -o 来进行 OR 运算,或 -not 来进行否定 运算可以使用括号来决定逻辑运算的顺序,但是必须使 用 bash 的转义符。find -user joe -not -group joefind -user joe -o -user janefind -not ( -user joe -o -user jane )find 命令和权限可以根据用户名或 ID 来匹配所有者find / -user joe -o -uid 500可以匹配数字式 (又称八进制) 或符号式权限模 式find -pe

9、rm 755 会匹配权限模式恰好是 755 的文件只有当任何人都有写权限时,find -perm +222 才会 匹配只有当每个人都有写权限时,find -perm -222 才会匹 配只有当其它人 (other) 有写权限时,find -perm -002才会匹配find 命令和数字式条件许多 find 条件都接受数值作为参数find -size 1024k大小正好是 1 兆的文件find -size +1024k大小超过 1 兆的文件find -size -1024k大小小于 1 兆的文件find 和存取时间find 命令可以根据 inode 时间戳来进行匹配-atime文件最后一次被读取-mtime文件数据最后一次被改变-ctime文件数据或元数据最后一次被改变给定值代表天数find -ctime -10文件修改日期少于 10 天使用 find 来执行命令使用 find 来执行命令在找到的文件上可以执行命令命令前面必须加一个 -exec 或 -ok 选项-ok 在对每个文件执行命令前提示你命令必须以 空格;(“ ;”) 结尾 可以用作文件名的位置标志符find -size +102400k -ok gzip

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论