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

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

一:文本查看(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

相关推荐

  • 权限管理

           学习文件和目录的权限管理,不仅在学习上对我们的帮助很大,而且在工作上帮助也很大,因为你对文件或目录设置了权限,其他用户只能根据你设置的权限对文件或目录进行浏览,修改,删除或执行,也正是如此,权限的管理很重要。下面我就对Linux的权限管理进行简单的介绍。 Linux下的文件类型 -:普…

    Linux干货 2016-08-08
  • shell脚本编程之运算

    一、数学运算   1、expr命令     此命令可以在命令行执行数学运算操作。     由于此命令使用时过于麻烦,所以不推荐使用。   2、方括号和双圆括号      $[ EXPRESSION ]      $((&…

    Linux干货 2015-12-31
  • windows server 2008 r2 每隔一段时间自动关机

    首先来说一下我的狗血经历:     话说作为一个地铁汪,每天背着电脑从房山到朝阳那简直就是能累死我的节奏,所以我跟公司申请我不要用自己的笔记本了(补助我不要了)。最后公司把一台不用的server 2008r2给我用,12G内存,志强CPU,跑虚拟机杠杠的。 但是噩梦开始了,我发现一个特点,这台server 2008 r…

    2015-11-26
  • 脚本的进阶与一些基本脚本

    1,脚本中用于表示数字大小写和符号为: -gt(大于)-lt(小于)-ne(不等于)-eq(等于) 格式为 [[空格 ”符号”空格]] 2,测试文件类型的选项 -f(是否为普通文件)-l(是否为链接文件)-d(是否为目录)-e(单独测试文件是否存在) 3,if语句的格式:(其中path代表条件,elif链接多个条件,最后一个条件用else表示) if pat…

    Linux干货 2017-05-22
  • nginx配置文件中文文档

    Nginx配置参数中文说明。 #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error…

    Linux干货 2017-08-08
  • python Django分页

    自定义html_helper.py  —>  Page_helper类 #coding:utf-8 from django.utils.safestring import mark_safe class Page_Helper(object):    …

    Linux干货 2016-08-22