文本处理工具

xiaoxiao2021-02-27  600

diff 命令

diff 命令用于比较两个文件的内容 , 以了解其区别。它还可用于创建补丁文件。补丁文件用于在企业环境的多台计算机之间对相似文件进行更改 [root@localhost mnt]# diff file file1 ####diff 命令用于比较两个文件的内容 , 以了解其区别 [root@localhost mnt]# diff -c file file1 ####显示上下文周围的行 [root@localhost mnt]# diff -u file file1 ####使用统一输出格式 [root@localhost mnt]# diff -u file file1 > file.path ####生成补丁文件

修补命令 patch

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

grep 命令

grep 将显示文件中与模式匹配的行。其也可以处理标准输入 模式可以包含正则表达式元字符 , 因此始终为正则表达式加引号通常被视为一种好办法. [root@localhost mnt]# grep test passwd ####在passwd中显示与test匹配的行 [root@localhost mnt]# grep test passwd -i ####-i表示不忽略大小写 [root@localhost mnt]# grep -i -E “test|root” passwd ####-E表示过滤多个关键字,显示含有test或root的行 [root@localhost mnt]# grep -i -E “^test” passwd ####^关键字表示以关键字开头 [root@localhost mnt]# grep -i -E “test$” passwd ####关键字$表示以关键字结尾 [root@localhost mnt]# grep “test” passwd ####细致过滤 [root@localhost mnt]# grep “test” passwd | grep -E “^test|test$” -v ####-v表示反向过滤,即不显示与关键字匹配的行 [root@localhost mnt]# grep westos -r /mnt ####在目录中查找含有关键字的文件 [root@localhost mnt]# grep westos -r /mnt -n ####显示关键字所在行 [root@localhost mnt]# grep -i test passwd -c ####显示关键字出现了几行

sort 命令

sort 用于排序文本数据。该数据可以位于文件中或其他命令输出中。 Sort 通常与管道一起使用 [root@localhost mnt]# sort -n file####纯数字排序 [root@localhost mnt]# sort file####仅看首字符排序 [root@localhost mnt]# sort -rn file####逆序排序 [root@localhost mnt]# sort -rnu file####-u表示去冗余,即去除重复的

uniq 命令

uniq“ 删除 ” 文件中重复的相邻行。若要只打印文件中出现的唯一行(“ 删除 ” 所有重复行 ), 必须首先对 uniq 的输入进行排序。由于可以为 uniq 指定其决策所基于的字段或列 , 因此这些字段或列是对其输入进行排序所必须的字段或列。如果未与选项一起使用 , uniq 会使用整个记录作为决策键 , 删除其输入中的重复行 [root@localhost mnt]# sort -rn file | uniq -c####uniq -c表示去除重复并统计重复的次数 [root@localhost mnt]# sort -rn file | uniq -d####显示重复的行 [root@localhost mnt]# sort -rn file | uniq -u####显示唯一行

sort与uniq的详细应用

[root@localhost mnt]# sort file [root@localhost mnt]# sort -n file####此时排序只排首列 [root@localhost mnt]# sort -t : -k 3 -n file####-t表示指定分隔符,-k表示指定列 [root@localhost mnt]# sort -t : -k 3 -n file | uniq -c####去除重复并统计重复 显示当前进程内存前五的pid [root@localhost mnt]# ps ax -o pid –sort -%mem | grep -v PID | head -n 5

tr 命令

tr 用于转字符 : 即 , 如果给定了两个字符范围 , 则只要发现某个字符位于第一个范围中 , 就会将其转换为第二个范围中对等的字符。该命令通常在 shell 脚本中使用 , 以按预期情况转换数据 [root@localhost mnt]# tr ‘a-z’ ‘A-Z’ < file####将小写字母转换为大写字母 [root@localhost mnt]# tr ‘A-Z’ ‘a-z’ < file####将大写字母转换为小写字母

cut 命令

cut 用于 “ 剪切 ” 文件中的文本字段或列并将其显示到标准输出 cut -d 分隔符####指定分隔符 [root@localhost mnt]# cut -d : -f 3 passwd####显示指定的列 [root@localhost mnt]# cut -c 1-3 passwd ####显示指定的字符

sed 命令

sed 命令是流编辑器 , 用于对文本数据流执行编辑。假定要处理一个文件名 , sed 将对文件中的所有行执行搜索和替换 , 以将修改后的数据发送到标准输出 ; 即 , 其实际上并不修改现有文件。与 grep 一样 , sed 通常在管道中使用 由于 sed 命令通常包含可以解释为 shell 元字符的字符 ,因此请按下面示例所示引用 sed 命令。默认情况下 , sed对文件中的所有行执行操作。在提供 sed 时 , 可带有地址 sed ‘s/原字符/替换字符/g’ file sed -e ‘策略1’ -e ‘策略2’ file [root@localhost mnt]# sed ‘s/sbin/westos’ passwd [root@localhost mnt]# sed -e ‘s/westos/sbin/g’ -e ‘s/lee/nologin/g’ passwd [root@localhost mnt]# vim rule [root@localhost mnt]# sed -f rule passwd ###使用指定文件规则更改 [root@localhost mnt]# cat -b passwd > westos####显示行号 [root@localhost mnt]# sed ‘3,5s/sbin/westos/g’ westos ####3-5行替换

转载请注明原文地址: https://www.6miu.com/read-236.html

最新回复(0)