且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ii第六单元 文本处理工具

更新时间:2022-09-30 12:47:37


linux中常用的基础命令
diff 命令
patch 命令
grep 命令
Cut 命令
sort 命令
uniq 命令
tr 命令
sed 命
1.diff 命令 比较两个文件的不同 用于创建补丁文件
diff -u file file.new >file.path  ##生成补丁文件
yum install patch -y         ##安装打补丁工具

(1)patch -b file file.path    ##给老文件件打补丁,并且对老文件进行备份
补丁版替换原始文件 , 但当指定 -b 选项时 , 可以制作备份。将用 .orig 文件名后缀
重命名原始文件
   17 vim file ##建立file
   18 vim file1##建立file1
   19 cat file  ##查看file
   20 cat file1 ##查看file
   21 diff file file1   ##比较两个文件的不同 
   22 diff -c file file1 ## -c 显示上下文周围的行
   23 diff -u file file1 ## -u 使用统一的输出格式
   24 diff -u file file1 > file.path ##创建补丁文件
   25 cat file.path    ##查看补丁文件
   26 yum install patch -y  ##安装打补丁工具
   27 patch file file.path ##给文件打补丁,文件在前,补丁文件在后
   28 cat file          ##查看文件 
   34 ls 
   40 vim file
   41 patch -b file file1 
   42 patch -b file file.path  ##给老文件件打补丁,并且对老文件进行备份
   43 ls
   44 cat file.orig 查看备份文件
   45 cat file 查看新文件
   46 history

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具



(2)patch 可用于将简单的补丁文件应用于使用以下语法的单个文件
– [root@host etc]# patch issue patchfile
Patching file issue

(3)以下命令显示如何使用通过 diff -Naur 创建的补丁文件。用户更改为
与从中创建补丁文件的原始目录相似的可比较目录后 , 将执行patch
– [user@host orig-dir]$ patch -b < /tmp/patchfile
Patching file hosts
Patching file network
2.grep命令 
grep 将显示文件中与模式匹配的行。
grep        -i              ##忽略大小写
        -v              ##反向过滤
        -E "关键字1|关键字2|....." ##过滤多个关键字



    1  cd/mnt/
    2 ls
    3 cp /etc/passwd  /mnt/ ##将/etc/passwd复制到/mnt
   22 vim passwd    ##编辑passwd文本
   23 cat passwd    ##查看passwd文本
   24 grep -i test passwd  ##显示文件中含有test的行,忽略test大小写
   25 grep test passwd  ##显示文件中含有test的行
   26 grep -i test passwd -v ##显示文件中不含有test的行,忽略test大小写
   27 grep -E "TEST|root" passwd ##显示文件中含有TEST或root"的行
   28 grep -E "test|root" passwd##显示文件中含有test或root的行
   29 grep -E "test|ROOT" passwd##显示文件中含有test或ROOT的行
   30 grep -E "^test|ROOT" passwd##显示文件中行首是test或含有ROOT的行
   31 grep -E "test|ROOT$" passwd##显示文件中含有test或行尾是ROOT的行
   32 grep -E -i "^test|ROOT" passwd
    ##显示文件中行首是test或含有ROOT的行,忽略大小写
   33 grep test passwd  | grep -i testpasswd -v
    ##显示文件中不含有test的行,忽略test大小写
   34 grep test passwd  | grep -E  "^test|root$" -v
   显示文件中行首不是test或不含有root的含有test的行
   35 grep test passwd  | grep -E  "^test|test$" -v
   显示文件中行首不是test或不含有test的含有test的行
   36 grep test passwd  | grep -E  "^root|root$" -v
   显示文件中行首不是root或不含有root的含有test的行

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具



  grep -r 关键字 目录       ##在目录中过滤还有关键字的文件
       -n           ##显示结果所在行的行号
       -c           ##结果个数

ii第六单元 文本处理工具ii第六单元 文本处理工具

 练习

提取ifconfig eth0 中的ip地址

ii第六单元 文本处理工具

ii第六单元 文本处理工具

3.cut 命令
##-d指定用于提取字段的分隔符
##-f 指定要从每行中提取的字段
##-c 指定要从每行中提取的文本列

    2 cd /mnt/  
    3 cp /etc/passwd .  
    4 vim passwd
    5 cat passwd
    6 cut -d : -f 1,7 passwd ##剪切每行中的1和7字段,并提取字段的分隔符
    -d : -f 一起用,不能分开
    7 cut -d : -f 1,3 passwd ##剪切每行中的1和3字段,并提取字段的分隔符
    8 cut -d : -f 1-3 passwd ##剪切每行中的1到3字段,并提取字段的分隔符
    9 cut -c  1-3 passwd ##剪切每行中的1到3列文本
 ii第六单元 文本处理工具

ii第六单元 文本处理工具 

3.sort 排序
        -n              ##纯数字
        -r              ##倒序
        -u              ##去掉重复行
        -t              ##指定分隔符
        -k              ##指定排序的列
4.uniq 
处理重复行
        -c              ##统计重复行的个数
        -u              ##显示唯一的行
        -d              ##显示重复行

    1 vim file
    2 sort -n file  ##纯数字排序
    3 sort -rn file  ##倒序
    4 sort -rnu file ##去掉重复行
    5 sort -rn file | uniq -c ##统计重复行的个数,倒序
    6 sort -rn file | uniq -u  ##显示唯一的行,倒序
    7 sort -rn file | uniq -d  ##显示重复行,倒序
   11 vim file
   12 cat file
   13 sort -t : -k 3 -n file ## 排序分隔符分的第三列
   14 sort -t : -k 3 -n file | uniq  -c##排序分隔符分的第三列,并统计重复行的个数
   15 sort -t : -k 1 -n file | uniq  -c##排序分隔符分的第1列,并统计重复行的个数
   17 sort -t : -k 2 file | uniq -c  ##排序分隔符分的第2列,并统计重复行的个数
   18 sort -t : -k 3 -n file | uniq -u##排序分隔符分的第三列,显示唯一的行
   19 sort -t : -k 3 -n file | uniq -d##排序分隔符分的第三列,显示重复行
ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具


5.tr 转换字符大小写
    4 vim file 
    5 cat file
    6 tr 'a-z' 'A-Z' < file ##把file中所有小写字符转换成大写
    7 tr 'A-Z' 'a-z' < file ##把file中所有大写字符转换成小写

    8 history
ii第六单元 文本处理工具

6.sed   控制流输出
sed 命令是流编辑器
 , 用于对文本数据流执行编辑。假定要处理一个文件名 , sed 将对文件中的所有行执行搜索和替换 , 以将修改后的数据发送到标准输出 ; 即 , 其实际上并不修改现有文件。与 grep 一样 , sed 通常在管道中
    9 cat passwd
   10 cat passwd -b > westos ##将passwd中的内容输入到westos中 并且显示行数
   11 cat westos
   12  sed 's/nologin/westos/g' westos ##替换输出中的nologin为westos
   16 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' westos
        ##多条替换策略用-e连接 
   18 sed '1,3s/nologin/westos/g' westos 
       ##替换输出中1-3行的nologin为westos
   20 sed 3,7d westos  ##不显示文件中的3-7行 
   21 sed 3,7p westos  ##重复显示文件中的3-7行
   22 sed -n 3,7p westos ##只显示文件中的3-7行
   23 sed 3d westos   ##不显示文件中的第三行 
ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具

ii第六单元 文本处理工具


将修改后的数据发送到标准输出 ; 其实际上并不修改现有文件。
   27 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' westos
       ##多条替换策略用-e连接 
   28 cat westos

ii第六单元 文本处理工具

-i将输出导入westos, 修改现有文件
   30 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' -i westos
      ##多条替换策略用-e连接
   31 cat westos

ii第六单元 文本处理工具

   sed -ne 3p -ne 7p westos ##只显示文件中的3,7行

ii第六单元 文本处理工具sed '/games/,/nobody/s/nologin/westos/g' passwd     ##替换输出中的games字符到nobody字符之间的nologin为westos 
[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

 










本文转自 如何何如  51CTO博客,原文链接:http://blog.51cto.com/12778805/1922056,如需转载请自行联系原作者