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

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

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

相关推荐

  • RedHat系列linux网络属性配置

    一、Linux网络管理基础 1 路由条目:  目标地址 经下一跳(nexthop) 目标地址的类别: 单个主机: 主机路由 网路接口: 网络路由 目标地址为0.0.0.0/0.0.0.0: 默认路由 2 将linux主机接入到网络中: IP/NETMASK: 本地通信 路由(网关): 酷网络通信 DNS服务器地址: 基于主机名的通信 主dns服务器…

    Linux干货 2016-09-19
  • Linux 文 本 处 理 工 具

    Linux 文 本 处 理 工 具 一.学习大纲: ◎各种文本工具来查看、分析、统计文本文件 文件内容查看工具:cat, tac,rev,more,less 文件截取:head和tail 按列抽取:cut,paste 分析文本的工具:wc , sort , uniq,diff和patch 命令使用练习题 ◎文本过滤与处理工具: grep与正则表达式…

    Linux干货 2016-08-05
  • linux中进程及内存管理工具

    pstree 显示进程树 ({}是线程) 选项-p #显示进程编号 pstree username #查看指定用户的进程 centos7中可以使用选项-s来查看指定进程的父子进程   ps (默认显示当前终端运行的进程) 支持三种选项: 1、UNIX选项 -C cmdlist 指定命令(允许同时指定多个命令) -L 显示线程 -e: 显示所有进程,…

    Linux干货 2017-12-17
  • 第一周的作业

    1、描述计算机的组成及其功能。 主要分为五个部分: 控制器:计算机的中枢神经,控制总线使用权限、寻址、管理各类资源的分配。 运算器:对数据进行各种算数运算和逻辑运算。 存储器:通常指内存RAM,CPU需要运行的程序以及数据都存放在存储器中供CPU调用处理。 (以上三者为计算机核心的三大部件,依靠这三大部件即可完成核心工作。) 输入设备:比如鼠标、键盘,使用户…

    Linux干货 2016-11-02
  • Linux基础知识之脚本初级编程

    1.编程语言的分类:机器语言,汇编语言,高级语言     高级语言:         静态语言:编译型语言 在程序执行之前就会编译成机器代码(完全转化完成)       &nbsp…

    Linux干货 2016-08-15
  • shell脚本2——顺序选择语句

    流程控制      顺序执行      选择执行      循环执行 顺序执行:     条件选择:if语句 if语句为选择执行 注意:if语句可嵌套 单分支 if  判断条件:t…

    Linux干货 2016-08-18