2-6. 文本处理工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2-6. 文本处理工具相关的知识,希望对你有一定的参考价值。

##文本处理工具##

学习目标

diff命令

patch命令

grep 命令

Cut 命令

sort 命令

uniq 命令

tr 命令

sed 命令

##diff命令

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

技术分享

##修补命令patch

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

patch 可用于将简单的补丁文件应用于使用以下语法的单个文件

– [[email protected] etc]# patch issue patchfile

Patching file issue

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

– [[email protected] orig-dir]$ patch -b < /tmp/patchfile

Patching file hosts

Patching file network

##grep 命令

grep 将显示文件中与模式匹配的行。其也可以处理标准输入

模式可以包含正则表达式元字符,因此始终为正则表达式加引号通常被视为一种好办法。在本单元后面的部分中将介

技术分享

##Cut 命令

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

技术分享

##sort 命令

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

技术分享

##uniq 命令

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

技术分享

##tr 命令

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

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

##sed 命令

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

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

技术分享

1.diff命令

##diff file file1   ##比较两个文件的内容

##diff -u file file1   ##比较两个文件的内容使用统一输出格式

技术分享

##diff -u file file1 〉file.path  ##生成补丁文件

技术分享

2.patch命令

##patch file file.path  ##补丁文件替换原始文件

技术分享

##patch -b file file.path   ##可以制作备份,用 .orig 文件名后缀重命名原始文件

技术分享


3.grep 命令

技术分享

##grep test passwd   ##准确查找test

##grep -i test passwd   ##模糊查找,忽略大小写

技术分享

##grep -i test passwd -v  ##反向查找

技术分享

##grep  -i -E “root|test” passwd  ##查找两个字符root和test,忽略大小写

技术分享

##grep "^test" passwd   ##查找在行首的字符

##grep "test$" passwd   ##查找在行尾的字符

技术分享

##grep -n test passwd ##显示行号

##grep -c test passwd  ##显示行数

##grep -r test passwd  ##对文件进行递归式搜索

技术分享

##grep westos /mnt -r  ##在目录中对文件进行递归式搜索

##grep westos /mnt -r -n ##在目录中对文件进行递归式搜索,显示行号

##grep westos /mnt -r -c ##在目录中对文件进行递归式搜索,显示行数

技术分享

##ifconfig eth0 | grep netmask | cut -d " " -f 10 ##找出ip

技术分享

4.Cut 命令

##cut -c 1-3 passwd    ##剪切passwd中1-3列

技术分享

##cut -c 1,3  passwd    ##剪切passwd中1和3列

技术分享

##cut -d  " " -f  2  file     ##剪切file中第2个字段

##cut -d  " " -f  2 -3  file     ##剪切file中第2到3个字段

##cut -d  " " -f  1-3  file     ##剪切file中第1-3个字段

技术分享

5.sort 命令

##sort -n westos ##按升序排列

技术分享

##sort  westos  ##按第一个数字升序排列

技术分享

##sort -r westos  ##按第一个数字降序排列

技术分享

##sort -rn westos  ##按降序排列

技术分享

##sort -rnu westos  ##按降序排列仅显示唯一行

技术分享

##sort -t : k 1 -n westos  ##-t指定分隔符 k指定字段1升序

技术分享

6.uniq 命令

##sort -rn westos | uniq -u  ##显示唯一行

##sort -rn westos | uniq -n  ##显示重复行

##sort -rn westos | uniq -c  ##计行数

技术分享

##sort westos   ##按第一个数字升序排序

技术分享

##sort  -n  westos   ##按第一个数升序排序

技术分享

##sort -t : k 3 -n westos  ##-t指定分隔符 k指定字段3升序

技术分享

##sort -t : k 1 -n westos | uniq -c  ##-t指定分隔符 k指定字段1升序,计行数每行显示一次

技术分享

7.tr 命令

##tr ‘a-z‘ ‘A-Z‘ < westos ##小写变大写

##tr ‘A-Z‘ ‘a-z‘ < westos   ##大写变小写

技术分享

8.sed 命令

## sed ‘s/sbin/westos/g’ passwd   ##将文件内sbin换成westos,不同步

技术分享

## sed ‘s/sbin/westos/g’ passwd -i  ##将文件内sbin换成westos,将结果输入到文件

技术分享

##sed -e‘s/sbin/westos/g’ -e ‘s/nologin/redhat/g‘ passwd -i  ##同时转换两个字符

技术分享

##cat  cui   ##写文件cui转换两个字符

##sed -f cui passwd  ##用文件cui同时转换两个字符

技术分享

##sed -f cui passwd -i  ##用文件cui同时转换两个字符,将结果输入到文件

技术分享

##cat passwd -b > redhat  ##将有行号的passwd文件输出到redhat

技术分享

##sed ‘3,5s/sbin/westos/g’ passwd   ##把3-5行的sbin换为westos

技术分享

##sed 5x redhat   ##剪贴第五行

技术分享

##sed 5p redhat  ##重复第5行

技术分享

##sed -n 5p westos  ##单独列出第五行

技术分享

##sed 5d redhat  ##隐藏第5行

技术分享

##sed -n  3,5p westos  ##单独列出3-5行

技术分享

##sed  -ne 3p -ne 5p redhat  ##单独列出第3行和第5行

技术分享

以上是关于2-6. 文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章

Linux文本处理工具三剑客之grep

Unix & Linux的文本处理工具 -- grep, sed & awk

shell编程文本处理工具

文本处理工具

Linux篇 | 文本处理工具和正则表达式

基本文本处理工具