文本处理工具

来源:互联网 发布:apache cgi区别 编辑:程序博客网 时间:2024/06/08 08:21

                  第六单元 文本处理工具

1.diff命令

diff 命令用于比较两个文件的内容 ,以了解其区别。它还可 用于创建补丁文件。补丁文件用于在企业环境的多台计算 机之间对相似文件进行更改

diff    -c   //显示上下文周围的行

       -u //使用统一输出格式(对于生成的补丁文件很有用)

       -r //从指定的目录开始文件执行递归式比较

       -b //忽略一行当中仅有的多个空白的区别(例如“about  me”与“about    me”视为相同)

       -B //忽略空白行的区别

       -i   //忽略大小写的区别

2.修补命令 patch  

patch  采用补丁文件patchfile ( 包含由 diff 生成的差异列表 )并将这 些差异应用于生成补丁版的一个或多个原始文件。通常 ,补丁版替换原 始文件 , 但当指定 -b 选项时 , 可以制作备份。将用 .orig 文件名后缀 重命名原始文件

以下命令显示如何使用通过 diff -Naur 创建的补丁文件。用户更改为 与从中创建补丁文件的原始目录相似的可比较目录后 , 将执行 patch

[root@localhostmnt]#diff  -Naur  file.old file.new > file.patch   //制作补丁文件

[root@localhost mnt]#patch  -pN < patch_file  //更新

[root@localhost mnt]#patch  -R –pN <patch_file  //还原

-p    //后面的N表示取消几层目录的意思

-R    //代表还原,将新的文件还原成原来的旧版本

3.grep 命令

grep 将显示文件中与模式匹配的行。其也可以处理标准输入模式可以包含正则表达式元字符 ,因此始终为正则表达式加 引号通常被视为一种好办法。

grep       -i     //执行不区分大小写搜索

           -n      //前置返回行的行号

           -r       //对文件执行递归式搜索,从命名目录开始

           -c       //显示具有匹配模式的行的计数

           -v       //返回不包含模式的行

4.cut 命令

cut “ 剪切”用于文件中的文本字段或列并将 其显示到标准输出

cut         -d       //指定用于提取字符的分隔符(Tab是默认值)

            -f       //指定要从每行中提取的字段

            -c      //指定要从每行中提取的文本列

5.sort 命令

sort 用于排序文本数据。该数据可以位于 文件中或其他命令输出中。 Sort 通常与管道符一起使用

sort       -n         //按数值而非字符排序

          -k          //设置排序字段

          -t           //指定其他字段分隔符(默认为空格)

6.uniq 命令

uniq“ ”删除 文件中重复的相邻行。若要只打印文件中出现的唯一行 (“ ” 删除 所有重复行 ),必须首先对 uniq  的输入进行排序。由于可以为 uniq 指定其决策所基于的字段或列 ,因此这些字段或列是对其输入进 行排序所必须的字段或列。如果未与选项一起使用 , uniq 会使用整个 记录作为决策键 ,删除其输入中的重复行

uniq          -u         //仅显示唯一行

            -d           //显示重复行

            -c            //每行显示一次(包括出现计数)

7.tr 命令

tr 用于转字符 :即 ,如果给定了两个字符范围 ,则只要发现 某个字符位于第一个范围中 ,就会将其转换为第二个范围中 对等的字符。该命令通常在 shell 脚本中使用 ,以按预期 情况转换数据

tr 'A-Z' 'a-z' <file

8.sed 命令

sed 命令是流编辑器 ,用于对文本数据流执行编辑。假定要处理一个文件名 , sed 将对文件中的所有行执行搜索和替换 , 以将修改后的数据发送到标准输出,实际上并不修改现有文件。与 grep 一样 ,sed通常在管道中使用

由于 sed  命令通常包含可以解释为 shell 元字符的字符 , 因此请按下面示例所示引用 sed 命令。默认情况下 , sed  对文件中的所有行执行操作。在提供 sed 时 ,可带有地址

sed    s/old/new/              执行字符串转换,将old替换为new

       -d                     删除匹配的行

1 0