常用文本处理工具 及 正则表达式详解

  >>>文本处理工具<<<

一:文本查看(cat、less、more、head、tail、cut、paste)

cat  (常用于显示内容较少的文本)

功能:查看文件内容,创建文件,文件合并,追加文件内容

选项(options):

 ①查看文件内容:

 -A  = -vte  显示文件所有内容(包括回车[$]和特殊字符)

常用文本处理工具 及 正则表达式详解

 -n   显示行编号,空白行也编号    常用文本处理工具 及 正则表达式详解联想:nl filename 也能显示文本文件的行号偶

 -b   显示行编号,但对空白行不编号

 -e/E   在输出内容的每一行后加上$(换行符)符号

 -s    合并连续空白行  

 -t/T  显示tab(^I)

 -v  显示非打印字符串

 –version  显示版本信息并退出     

 ②创建文件并写入文件内容(与重定向>配合使用):

  语法:cat>filename<<endmark

  (filename  新创建的文件名

      endmark   结束标志,当输入endmark时自动退出编辑)

    常用文本处理工具 及 正则表达式详解

 ③文件合并(与重定向>配合使用)

 cat f1 f2>f3   将f1、f2文件内容写入到f3中(覆盖f3原有内容)

 cat f1 f2>>f3  将f1、f2文件内容写入到f3中(保留f3原有内容)

 ④追加文件内容(与重定向>配合使用)

 cat>>filename<<endmark

more(常用于内容较多,需要分页的文本文件)

1.功能:

  • 逐页显示文件内容
         space/f:显示下一页
         b(back):显示上一页
  • 启动时就加载整个文件,并能够搜索字符串和跳行
2.命令格式:
   more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]
3.options:
  +n      从笫n行开始显示

  -n       定义屏幕大小为n行

  +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示  

  -c       从顶部清屏,然后显示
  -d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,  并禁用响铃功能
  -l        忽略Ctrl+l(换页)字符

  -p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

  -s       把连续的多个空行显示为一行
  -u       把文件内容中的下划线去掉
 4.常用快捷方式:
  Enter :   向下n行,需要定义。默认为1行

  Ctrl+F :  向下滚动一屏

  空格键:  向下滚动一屏
  Ctrl+B:  返回上一屏
  = :      输出当前行的行号
  :f     输出文件名和当前行的行号

  V      调用vi编辑器

  !  命令    调用Shell,并执行命令 
 q       退出more

less(man帮助文档使用)
1.功能:
  分页显示文件内容,但在查看文件之前不会加载整个文件(不同于more)
2.命令格式:
  less [参数]  filename 
3.options:
  b <缓冲区大小> 设置缓冲区的大小

 -e  当文件显示结束后,自动离开

-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g  只标志最后搜索的关键词

-i  忽略搜索时的大小写

-m  显示类似more命令的百分比

-N  显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-Q  不使用警告音

-s  显示连续空行为一行

-S  行过长时间将超出部分舍弃

-x <数字> 将“tab”键显示为规定的数字空格
4.常用快捷键:
  /string:向下搜索“字符串”的功能
 ?string:向上搜索“字符串”的功能

 n:重复前一个搜索(与 / 或 ? 有关)

 N:反向重复前一个搜索(与 / 或 ? 有关)

 b  向后翻一页

 d  向后翻半页

 h  显示帮助界面

 Q  退出less 命令

 u  向前滚动半页
 y  向前滚动一行
 space键:滚动一行
 Enter键: 滚动一页
 [pagedown]: 向下翻动一页
 [pageup]:   向上翻动一页

head

-n  行号 /   -行号   显示前n行

-c  以字节为匹配单位,显示前n个字节 

tail

-n  行号 /  -行号   显示后几行

-c  字节数             显示后n个字节

-f                          动态跟踪显示文本增加的内容(常用于日志监控)

日志监控用法:

常用文本处理工具 及 正则表达式详解追加信息到file1文件中

常用文本处理工具 及 正则表达式详解再打开一个终端,利用 tail -f  file1 来实时追踪file1的变化

cut(常与tr一起连用)

-d 指定分隔符

-f 选取第几列:

     截取某行:cut -fn

     截取连续几行:cut -fm-n

     同时截取不连续与连续行:cut -fm-n,j(注意:用隔开)

–output-delimiter 指定输出符

     eg: cut -d: -f1,3 –output-delimiter=’|’ /etc/passwd   将原有:替换成 |

            常用文本处理工具 及 正则表达式详解=

paste 合并文件内容

paste file1 file2

-d 指定分隔符(默认到TAB)

-s 所有行合并成一行显示(合并单个文件)

常用文本处理工具 及 正则表达式详解

二:文本分析工具(wc、sort、diff与patch)

WC (文本数据统计工具)

1.功能:

计算单词总数、行总数、字节总数、字符总数

※  wc  file    图二所示结果依次是:  行数  单词数   字节数($、^I等其他隐藏字符也算一个字节偶)

常用文本处理工具 及 正则表达式详解  图一

常用文本处理工具 及 正则表达式详解     图

2.options:

  -l   总行数

  -w  单词总数

  -c   字节总数

  -m  字符总数

sort(默认升序)

1.options:

   -r 执行反方向(由上至下)整理 (降序)

    -n 执行按数字大小整理

    -f 选项忽略(fold)字符串中的字符大小写

    -u (unique) 删除输出中的重复行

    -t c    选项使用c做为字段界定符(与  -k  搭配使用效果更佳常用文本处理工具 及 正则表达式详解

    -k X   选项按照使用c字符分隔的X列来整理能够使用多次(与 -t 搭配使用效果更佳常用文本处理工具 及 正则表达式详解

2.常见用法:

    ①  sort  -t符号m   -kn  -n     以符号m为间隔符,取第n列按数字大小对文本进行排序

    sort -t: -k3 -n  /etc/passwd      根据用户UID大小对用户进行默认排序

    ②与uniq搭配使用,对有分散的重复行文本内容排序常用文本处理工具 及 正则表达式详解,例题:

       常用文本处理工具 及 正则表达式详解请对将此字符串:welcome to magedu linux 中的每个字符
去重并排序,重复次数多的排到前面

           解题思路: 输出welcome to magedu linux–>利用grep竖向输出字母–>sort对字母进行排序(默认升序)–> uniq -c 计算每个连续重复行出现次数(谨记:必须先用sort将分散的重复行变为连续行才能用 uniq -c 进行统计)–>再次利用  sort -rn  将其按照数字大小对其降序排列

                echo welcome to magedu linux| grep -o [[:alpha:]]| sort|uniq -c|sort -rn

               常用文本处理工具 及 正则表达式详解

uniq  (将连续重复行显示为一行)

1.options:

-c  将连续行显示为一行,并显示连续行出现的次数(如下图)

常用文本处理工具 及 正则表达式详解

-d  仅显示连续重复行

-u  仅显示不连续重复的行

2.常见用法:

与sort配合使用(见sort常见用法②例题)

diff与patch(生成补丁文件并为原始文件打补丁)

※diff  (比较两文件不同)

常用文本处理工具 及 正则表达式详解

options:

  -u  输出统一的diff文件(这就是我们常说的补丁文件了!!!!常用文本处理工具 及 正则表达式详解

※patch(为原始文件打补丁  谨慎使用

用法:

     patch  -b  原始文件  补丁文件       给文件打补丁

       常用文本处理工具 及 正则表达式详解

 


       >>>正则表达式<<<

一:什么是正则表达式?

  正则表达式是通过一些特殊字符的排列,用以查找、替换、删除一行或多行文字字符串

二:基础正则表达式(grep)

 1、grep    基本正则表达式

①功能:

    显示匹配信息所在行     

②options:

-o     只显示匹配到的行

eg:

-v     只显示未匹配到的行

-e     或

eg:grep -e  “cat”  -e  “dog”  file1   显示含有cat或dog的行

-w    匹配整个单词(精确查找)

-c     统计匹配的行数

-n     显示匹配结果的行号

-q     静默模式,不显示匹配结果

-A n  同时显示匹配到的行与它的后n行

-B n  同时显示匹配到的行与它的前n行

-C n  同时显示匹配到的行与它的前后n行

-E     =egrep

-F     =fgrep

-i      忽略字符大小写

–color=auto

 2、正则表达式中元字符分类

  •  字符匹配

    常用文本处理工具 及 正则表达式详解

  •  匹配次数

   *

  匹配字符任意次(包括0次,尽可能长的匹配)

   .*

  任意长度的任意字符

   \?

  01

    \+

  >=1

    \{n\}

  匹配n

   \{m,n\}

  匹配m-n

   \{,n\}

  <=n

   \{m,\}

  >=m

  •  位置锚定

   ^   行首锚定

   $    行尾锚定

   \<   词首锚定

   \>   词尾锚定

   \< \>

  •  分组

    ① \(string\)  同时匹配多个字符

    ② 后向引用: \1   表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符

     ③  \|     逻辑 “或”    

 3、egrep  拓展的正则表达式

  

字符匹配

 .         任意单个字符  

 []        指定单个字符

 [^]       补集

次数匹配

 {n}       n

 {m,n}     m-n

 *       0+

 ?        01

 +        大于等于1

位置锚定

 ^        行首

 $        行尾

 \<       词首

 \>       词尾

分组

 ()        

 \1,\2,\3…….  后向引用前面所匹配的字符串

 a|b      ab

 C|cat     Ccat

 (c|C)at    Catcat

         

原创文章,作者:yunyunyu,如若转载,请注明出处:http://www.178linux.com/83117

(0)
yunyunyuyunyunyu
上一篇 2017-07-30
下一篇 2017-07-30

相关推荐

  • CentOS 5和6的启动流程

    一、Linux组成     1. linux:kernel+rootfs         kernrl的作用:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能      &nbsp…

    Linux干货 2016-09-18
  • rpm包管理

    前言    RPM(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,…

    Linux干货 2015-05-13
  • 进程和进程管理工具

    进程的相关定义以及相关工具的使用

    2017-12-17
  • shell脚本编程入门(一)

    概述 shell脚本就像是早期DOS年代的批处理文件(.bat),最简单的功能就是将许多命令写在一起,让用户很轻松能够一下子处理复杂的操作(执行一个脚本就能够一次执行多个命令)。而shell脚本更提供数组、循环、条件与逻辑判断等功能,让用户也可以直接以shell来编写程序,而不必使用类似C语言等传统程序编写的语法。 shell脚本基础 shell脚本是包含一…

    Linux干货 2016-08-15
  • grep基本正则表达式以及扩展正则表达式

    基本正则表达式: grep:Globel serach REgular expression and print out the line 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行 模式:由正则表达式的元字符及文本字符所编写出的过滤条件 grep选项:       &nbs…

    Linux干货 2016-08-08
  • Linux基础-第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    2018-03-19