加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux文本处理相关命令

发布时间:2022-08-09 10:27:21 所属栏目:Linux 来源:互联网
导读:一、文本处理命令# 1.1 sort命令# Linux sort命令用于将文本文件内容加以排序。 sort 可针对文本文件的内容,以行为单位来排序。 语法格式如下: sort [参数]...[文件] 相关参数 参数说明 -n 依照数值的大小排序 -r 以相反的顺序来排序 -k 以某列进行排序 -t
  一、文本处理命令#
  1.1 sort命令#
  Linux sort命令用于将文本文件内容加以排序。
 
  sort 可针对文本文件的内容,以行为单位来排序。
 
  语法格式如下:
 
  sort [参数]...[文件]
  相关参数 参数说明
  -n 依照数值的大小排序
  -r 以相反的顺序来排序
  -k 以某列进行排序
  -t 指定分割符,默认是以空格为分隔符
  …  
  案例:
 
  $ cat testfile      # testfile文件原有排序  
  test 30  
  Hello 95  
  Linux 85
  使用sort命令重新排序后的结果如如下:
 
  $ sort testfile # 重排结果  
  Hello 95  
  Linux 85  
  test 30
  使用 -k 参数设置对第二列的值进行重排,结果如下:
 
  $ sort testfile -k 2
  test 30  
  Linux 85
  Hello 95
  1.2 uniq命令#
  Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
 
  uniq 可检查文本文件中重复出现的行列。
 
  语法格式如下:
 
  uniq [-cdu]...[输入文件][输出文件]
  相关参数 参数说明
  -c 在每列旁边显示该行重复出现的次数
  -d 仅显示重复出现的行列
  -u 仅显示出一次的行列
  [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据
  [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)
  …  
  案例:
 
  testfile中的原有内容为:
 
  $ cat testfile      #原有内容  
  test 30  
  test 30  
  test 30  
  Hello 95  
  Hello 95  
  Hello 95  
  Hello 95  
  Linux 85  
  Linux 85
  使用uniq 命令删除重复的行后,有如下输出结果:
 
  $ uniq testfile     #删除重复行后的内容  
  test 30  
  Hello 95  
  Linux 85
 
  $ uniq -c testfile      #删除重复行后的内容  
  3 test 30             #前面的数字的意义为该行共出现了3次  
  4 Hello 95            #前面的数字的意义为该行共出现了4次  
  2 Linux 85            #前面的数字的意义为该行共出现了2次
  当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:
 
  $ cat testfile1      # 原有内容
  test 30  
  Hello 95  
  Linux 85
  test 30  
  Hello 95  
  Linux 85
  test 30  
  Hello 95  
  Linux 85
  这时我们就可以使用 sort:
 
  $ sort  testfile1 | uniq
  Hello 95  
  Linux 85
  test 30
  统计各行在文件中出现的次数:
 
  $ sort testfile1 | uniq -c
     3 Hello 95  
     3 Linux 85
     3 test 30
  在文件中找出重复的行:
 
  $ sort testfile1 | uniq -d
  Hello 95  
  Linux 85
  test 30
  1.3 cut命令#
  Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
 
  语法格式如下:
 
  cut [-c] [file]
  cut [-df] [file]
  ...
  使用说明:
 
  cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
 
  如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
 
  相关参数 参数说明
  -c 以字符为单位进行分割
  -d 自定义分隔符,默认为制表符
  -f 与-d一起使用,指定显示哪个区域
  …  
  案例:
 
  [root@jiangzhi ~]# cat juechen  # 原文件内容
  |7|9|8|7|5|5|3|4|5|1|3|4|5
  |7|8|7|8|5|2|5|4|5|1
  |6|5|7|6|7|6|5|3|2
  |6|5|6|7|6|5|7
  |3|2|4|3|4|5|2|3|4|6|2|5
  |2|3|3|5|3|4|6
  |2|1|5|3|4|5|3|2|4
  |5|4|5|4|3
  |2|5|3|4|5|2|3
  如果我们想提取每一行的第2个字节,可以这样:
 
  [root@jiangzhi ~]# cat juechen | cut -b2
  7
  7
  6
  6
  3
  2
  2
  5
  2
  1.4 tr命令#
  Linux tr 命令用于转换或删除文件中的字符。
 
  tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
 
  语法格式如下:
 
  tr [-cdst]...[第一字符集][第二字符集]  
  tr [OPTION]…SET1[SET2]
  相关参数 参数说明
  -c, --complement 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  -d, --delete 删除指令字符
  -s, --squeeze-repeats 缩减连续重复的字符成指定的单个字符
  -t, --truncate-set1 削减 SET1 指定范围,使之与 SET2 设定长度相等
  …  
  案例:
 
  testfile文件中的内容如下:
 
  $ cat testfile         #testfile原来的内容  
  Linux networks are becoming more and more common,
  but scurity is often an overlooked  
  issue. Unfortunately, in today’s environment all networks
  are potential hacker targets,  
  fro0m tp-secret military research networks to small home LANs.  
  Linux Network Securty focuses on securing Linux in a
  networked environment, where the  
  security of the entire network needs to be considered
  rather than just isolated machines.  
  It uses a mix of theory and practicl techniques to
  teach administrators how to install and  
  use security applications, as well as how the
  applcations work and why they are necesary.
  将文件testfile中的小写字母全部转换成大写字母,此时,可使用如下命令:
 
  cat testfile |tr a-z A-Z
  使用 tr 命令大小写转换后,得到如下输出结果:
 
  $ cat testfile | tr a-z A-Z #转换后的输出  
  LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED
  ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS,  
  FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS.  
  LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE
  SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES.  
  IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.
  1.5 wc命令#
  Linux wc命令用于计算字数。
 
  利用wc指令我们可以计算文件的Byte数、字数、或是行数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
 
  语法格式如下:
 
  wc [-clw]...[文件...]
  相关参数 参数说明
  -c 统计文件的Bytes数
  -l 统计文件的行数
  -w 统计文件中单词的个数,默认以空白字符做为分隔符
  注:在Linux系统中,一段连续的数字或字母组合为一个词
 
  实例:
 
  在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。先查看testfile文件的内容,可以看到:
 
  $ cat testfile  
  Linux networks are becoming more and more common, but scurity is often an overlooked  issue. Unfortunately, in today’s environment all networks are potential hacker targets,fro0m tp-secret military research networks to small home LANs.  
  Linux Network Securty focuses on securing Linux in a networked environment, where the  security of the entire network needs to be considered rather than just isolated machines.  
  It uses a mix of theory and practicl techniques to teach administrators how to install and use security applications, as well as how the applcations work and why they are necesary. 

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读