unit2.6 文本处理工具

本文详细介绍Linux下常用的文本处理工具,包括diff、patch、grep、sort、uniq、tr、sed及cut等命令的使用方法及实例。适用于初学者及进阶用户提升文本处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

########################unit2.6#####################################

                            文本处理工具

 

¥¥¥¥¥¥一.diff比较两个文件的不同

1,diff命令

diff -u file file.new >file.path ##生成补丁文件

yum install patch -y ##安装打补丁工具

(配置yum仓库,以及ip)

(如图一)

 

patch  -b file file.path ##给老软件打补丁,并且对老软件进行备份(如图二)

 

 

2,修补命令 patch

 

**patch 采用补丁文件 patchfile ( 包含由 diff 生成的差异列表 ) 并将这

些差异应用于生成补丁版的一个或多个原始文件。通常 , 补丁版替换原

始文件 , 但当指定 -b 选项时 , 可以制作备份。将用 .orig 文件名后缀

重命名原始文件。

 

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

– [root@host etc]# patch issue patchfile

Patching file issue

 

**以下命令显示如何使用通过 diff -Naur 创建的补丁文件。用户更改为

与从中创建补丁文件的原始目录相似的可比较目录后 , 将执行 patch

– [user@host orig-dir]$ patch -b < /tmp/patchfile

Patching file hosts

Patching file network

 

 

¥¥¥¥¥¥二,grep(过滤字符)                    

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

-i ##忽略大小写

(如图三)


-n ##显示结果所在行的行号

(如图七)


-c ##结果个数

-v ##反向过滤

(如图四)


-r 关键字 目录 ##对文件执行递归式搜索,从命名目录开始(在目录中过滤还有关键字的文件)

(如图八)

 

-E "关键字1|关键字2|....." ##过滤多个关键字

(如图五,六)


 

 

****特殊实例;

(如图十一,十二)

 



¥¥¥¥¥¥三,sort(排序)

-n ##纯数字

(如图十三)

 

-r ##倒序

如图十五


-u ##去掉重复行

如图十六


-t ##指定分隔符

-k ##指定排序的列

如图十四

 

 

***特殊实例:

(如图二十,二十一)

 



 

¥¥¥¥¥¥四,uniq(处理重复行)

-c ##统计重复行的个数

(如图十七)

 

-u ##显示唯一的行

(如图十八)


-d ##显示重复行

(如图十九)

 

 

¥¥¥¥¥¥五,tr(转换字符大小写)

tr 'a-z' 'A-Z' <file ##把file中所有小写字符转换成大写

(如图二十二,二十三)

 



¥¥¥¥¥¥六,sed :控制流输出(非交互式更改文件的内容-i)

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

 

实例:

sed 's/nologin/westos/g' passwd  ##替换输出中的nologin为westos(修改shell中,不改变现有文件的内容)

(如图二十五)

 

sed 's/nologin/westos/g' -i passwd ##替换输出中的nologin为westps(修改现有文件中的内容)

(如图二十六,二十四)




 

sed '1,5s/nologin/westos/g' passwd ##替换输出中1-5行的nologin为wesots

(如图二十七)

 

sed '/games/,/nobody/s/nologin/westos/g' passwd ##替换输出中的games字符到nobody字符之间的nologin为westos

(如图二十九)

 

sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' passwd ##多条替换策略用-e连接

 

(如图二十八)

 

sed 3d passwd ##不显示文件中的第三行

(如图三十)

 

sed 3,7d file ##不显示文件中的3-7行

sed 3,7p file ##重复显示文件中的3-7行

sed -n 3,7p file ##只显示文件中的3-7行

(如图三十一)

 

[root@westos mnt]# cat rule ##规则文件内容

s/nologin/westos/g

s/sbin/lee/g

(如图三十二)

 

[root@westos mnt]# sed -f rule  file ##使用规则文件更改输出

     1 root:x:0:0:root:/root:/bin/bash

     2 bin:x:1:1:bin:/bin:/lee/westos

     3 daemon:x:2:2:daemon:/lee:/lee/westos

     4 adm:x:3:4:adm:/var/adm:/lee/westos

(如图三十三)

 

 

¥¥¥¥¥¥七,Cut 命令

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

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

           -f                  ##指定要从每行中提取的Cut 命令

(如图九)

 

• cut 用于 “ 剪切 ” 文件中的文本字段或列并将

其显示到标准输出字段

           -c                  ##指定要从每行中提取  

(如图十)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值