第六单元 文本处理工具
1.diff
diff命令用于比较两个文件的内容,以了解其区别。还可以用于创造补丁文件
参数
-c 显示上下文周围的内容
-u 使用统一输出格式(用于生成补丁)
-r 从指定的目录开始文件执行递归式比较
创建两个text文件
vim /mnt/old
hellow
world
vim /mnt/new
hellow
world
123
用diff命令比较这两个文件的不同
2.patch
patch 采用补丁文件 patchfile(包含由diff生成的差异列表)并将这些差异应用于生成补丁版的一个或多个文件。一般补丁补丁替换原版文件 但指定-b参数后 会生成一个以.org为后缀名的原始文件
安装patch
yum install patch -y
用diff -u命令生成补丁文件
用patch命令更新old文件内容
3.grep
grep 将显示文件中与模式匹配的行 也可以处理标准输入
参数
-i 执行不区分大小写搜索
-n 显示搜索结果在原文件中的行数
-r 递归式搜索目录
-c 统计符合结果的行数
-v 反向过滤
-E 过滤多个关键字
处理实验文件
cp /etc/passwd /mnt ###将/etc/passwd文件复制到/mnt中
4.cut
cut 用于剪切文件中的文本子段或列并将其显示到标准输出
参数
-d 指定用于提取字段的分隔符
-f 指定要从每行提取的字段
-c 指定要从每行提取的文本列
5.sort
sort 用于排序文本数据 该数据可以位于文件中或其他命令输出中
参数
-n 按数值而非字符排序
-k 设置排序字段
-t 指定其他字段分隔符
-u 去掉重复行
6.uniq
uniq 删除文件中重复的相邻行。若要只打印文件中出现的唯一行(“ 删除 ” 所有重复行 ), 必须首先对uniq 的输入进行排序。由于可以为uniq 指定其决策所基于的字段或列 , 因此这些字段或列是对其输入进行排序所必须的字段或列。如果未与选项一起使用 , uniq 会使用整个记录作为决策键 , 删除其输入中的重复行
参数
-u 仅显示唯一行
-d 显示重复行
-c 每行只显示一次
7.tr
tr 用于转字符 常用于大小写转换
8.sed
sed 该命令是流编辑器,用于对文本数据执行编辑。
sed 's/nologin/westos/g' passwd ##替换输出中的nologin为westos
sed '1,5s/nologin/westos/g' passwd ##替换输出中1-5行的nologin为wesots
sed -f 使用规则文件更改
规则文件内容
sed -i 将替换后的内容输入到指定文件中
本文转自Super_MONKEY 51CTO博客,原文链接:http://blog.51cto.com/supermk/1921175