文本处理工具1

本章目录:
一.各种文本工具来查看、分析、统计文本
二.grep
三.正则表达式
四.扩展正则表达式
五.egrep
一.各种文本工具来查看、分析、统计文本
 1.抽取文本的工具:
  1)文件查看命令:less和cat
   (1)cat -E 文件1 [文件2...]:
    a.显示换行符"$"
    b.换行的原因:读取文件读到"$"就换行,"$"表示一行的结束
    c.文件的每一行都由"$",默认不显示,用"-E"才会显示
   (2)cat n 文件1 [文件2...]:
    a.输出的结果显示行号,空行也参与排列
    b.文件的原文不包含行号
    c.cat /etc/passwd > /app/passwd:将/etc/passwd文件的内容输出后并显示行号,将显示行号的文件内容重定向到/app/passwd这个新文件当中
   (3)cat -b 文件1 [文件2...]:
    a.输出的结果显示行号,空行不参与排列
    b.文件的原文不包含行号
   (4)cat -s 文件1 [文件2...]:
    a.将连续的空行压缩成一个空行
    b.如果是从windows传输过来的文件,则无效
   (5)cat -v 文件1 [文件2...]:
    a.在每一行的末尾显示"^M"的符号
    b.如果是从windows传输过来的文件,使用"-v"会在每一行的末尾显示"^M"的符号
    c.如果是从windows传输过来的文件,使用"-vE",会在每一行的末尾显示"^M$"的符号
    d.如果是linux系统的文件,则无效
    (rz:将windows下的文件传输到当前的目录下)
    (rpm -qf:查看文件来自于哪一个安装包)
   (6)cat -T 文件1 [文件2...]:将Tab转换成"^I"符号
   (7)cat -A 文件1 [文件2...]:
    a.显示所有控制符
    b."-A"的功能等同于"-EvT"
   (8)tac 文件1 [文件2...]:将文件倒序输出(最好不要加选项)
  2)more
  3)less:分页查看文件
  4)head:查看文件的前多少行
   (1)head 文件1 [文件2...]:只显示文件前10行
   (2)head -n 数字# 文件1 [文件2...] 或者 -数字# 文件1 [文件2...]:
    a.指定显示文件的前#行
    b.当结合别的选项使用的时候不能使用第二种方法
   (3)head -c # 文件1 [文件2...]:指定显示文件的前#个字节
  5)tail:查看文件的最后多少行
   (1)tail+文件1[+文件2...]:只显示文件最后10行
   (2)rail -n 数字# 文件1 [+文件2...] 或者 tail -数字# 文件1 [文件2...]:
    a.指定显示文件的最后#行
    b.当结合别的选项使用的时候不能使用第二种方法
   (3)tail -f 文件:
    a.根据文件的实时变化实现监控的功能:
    b.在监控端使用"tail [-n #] -f passwd"命令显示出文件最后#行,当有新内容追加到文件中的时候,监控端会自动显示出来
    c.当文件原有的内容被覆盖的时候,监控端之前所显示的内容并不会消失,但实际文件已经被覆盖
    d.常用来被用作监控日志
   (4)tail -c# 文件1 [文件2...]:
    a.指定显示文件的最后#个字节
    b.注意控制字符也算是一个字节
    c.例如在每一行的最后会有"$"符号,在显示最后的#个字节的时候也包含"$"符号,但是"$"符号默认在不加任何选项的时候是不会显示的
  6)cut:查看文件的某些特定列
   (1)cut -d[分隔符] -f#1[#2,#3...]:将输出的内容每一行以分隔符为分割标记,输出第#1列,第#2列的内容
   (2)cut -d[分隔符] -f#n1-#n2:将输出的内容每一行以分隔符为分割标记,输出连续的第n1列岛第n2列的内容
   (3)cut -d[分隔符] #-#,#,#:将前两种方法综合使用,用",”分隔
   (4)cut -c #1 [#2...]:每一行按字符切割,输出每一行的第#个字符
   (5)--output-delimiter=字符串:
   a.指定每一行的输出的分隔符
   b.不能单独使用
   (6)前三种用法,如果分隔符为 " ":表示以空格为分隔符
   (7)前三种用法不加分隔符,默认分割符为Tab         
  7)paste:合并两个文件同一行的内容到一行显示出来
   (1)paste -d分隔符 文件1 [文件2...]:为多个文件同一行的内容以指定的分隔符为分割显示出两个文件的内容
   (2)paste -s 文件1 [文件2...]:
    a.把同一个文件的所有内容显示为一行,同时将同一个文件换行的"$"符号转换为Tab
    b.也可以将同一个文件的内容由纵向输出转换为横向输出(这个功能"tr"命令也可以实现)
 2.文本统计工具:
  1)wc:依次显示:行数,单词数,字节数
   (1)wc -l 文件1 [文件2...]:只统计行数,多个文件会统计所有文件的总行数
 (2)wc -w 文件1 [文件2...]:只统计单词的总数,多个文件会统计所有文件的单词总数
 (3)wc -c 文件1 [文件2...]:
    a.只计数字节总数,多个文件会统计所有文件的字节总数
    b.utf-8中一个字母一个字节,一个汉字三个字节
    c.隐藏的"$"符也算一个字节
 (4)wc -m 文件1 [文件2...]:
    a.只计数字符总数,多个文件会统计所有文件的字符总数
    b.utf-8中一个字母一个字符,一个汉字一个字符
    c.隐藏的"$"符也算一个字符
    d.特殊字符算一个字节也算是一个字符
  2)sort:对输出的内容进行排序,并不改变文件原有的内容
  (1)sort -r 文件1 [文件2...]:将输出的内容按反方向(由上至下)排序,多个文件会合并在一起并排序
(b)sort -n 文件1 [文件2...]:将输出的内容按照数字的大小排列,多个文件会合并在一起并排序
(c)sort -f 文件1 [文件2...]:排列时忽略(字符串中的)字符大小写,多个文件会合并在一起并排序
(d)sort -u 文件1 [文件2...]:将输出的内容中的所有重复行显示为一行,多个文件会合并在将所有文件的重复行显示为一行
(e)sort -t[分隔符] -k#1[#2,#3...] 文件1
         将输出的内容每一行以分隔符为分割标记,依次按照第#1列,第#2列的内容进行排序
(f)-k X 选项按照使用c字符分隔的X列来整理能够使用多次 
  3)uniq:只将输出的内容中前后连续重复的行显示为一行
   (1)uniq -c 文件1 [文件2...]: 显示每行重复出现的次数,多个文件会合并统计
   (2)uniq -d 文件1 [文件2...]: 仅显示重复过的行,多个文件会合并统计
   (3)uniq -u 文件1 [文件2...]: 仅显示不曾重复的行,多个文件会合并统计
   (4)常和sort 命令一起配合使用:一般先使用sort,将重复的行排列在一起,再使用"uniq"命令
   (rpm -qa:列出系统安装的所有软件包)
  4)diff:比较两个文件之间的区别
   (1)diff 文件1 文件2:比较两个文件的不同点
   (2)利用补丁包生成新文件:
    第一步:diff -u 旧文件 新文件 > 补丁包的名称:生成补丁包
    第二部:patch -b 旧文件 补丁包的名称
    执行第二步后,系统会把旧文件的名字更改为"文件名.orig",新文件的名称改为旧文件的名称
  5)文本统计工具通常要和管道符一起使用
附加:
网站部署过程:
[root@centos6 ~]# service httpd restart
[root@centos6 ~]# iptables -F
[root@centos6 ~]# cd /var/www/html/
[root@centos6 html]# vim index.html   
/var/log/http/access_log:网站的访问日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值