文本处理工具和正则表达式

文本处理工具和正则表达式:

文本查看工具:

    1,less,more 查看命令的执行的结果。区别在于less查看命令的执行结果,可以向上和向
    下翻页,而more仅可以向下翻页
    2,head 从文件的开始查看内容,默认是显示10行
    3,tail 从文件尾部查看内容,默认是显示10行
    4,cut 截取命令的执行结果,不过cut属于列截取
    5,rev 倒置命令的显示结果
    6,tac,cat 查看文件内容

分析文本工具:

    1,sort
        sort是对文本中的内容进行排序,它的排序的速度比其他命令的速度要快
            sort:
                -t 可以指定分割符
                -k 指定排序的是哪一行
    2,uniq
        uniq是对文本中出现的同样信息的次数进行排序,不过它只能够对于相邻的内容进行排
        序,所以在使用之前要先用sort进行处理后在排序
            uniq:
                -c: 显示每行重复出现的次数
                -d: 仅显示重复过的行
                -u: 仅显示不曾重复的行
    3,wc
        wc是对文本的行,字节数,字符数进行统计的工具

比较文本的异同的工具(给文本打补丁):

1,diff:比较两个文件之间的不同
    diff -u foo.conf foo2.conf > foo.patch(可将补丁重定向到一个文件之中,方便后续使用)
2,patch:复制在其它文件中进行的改变
    patch -b foo.conf foo.patch (向文件打补丁,并备份改变了的文件)

linux文本处理三剑客之一:

grep:用来搜索文件中所匹配的字符串,默认会打印出匹配的行,可使用正则表达式来过
滤

正则表达式:

基本正则表达式(BRE):
    字符匹配:  .    匹配任意单个字符
           []   匹配指定范围内的任意单个字符,示例:[wang]   [0-9]    [a-z]   [a-zA-Z]
           [^]  匹配指定范围外的任意单个字符  [:alnum:] 字母和数字
           [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
           [:lower:] 小写字母
           [:upper:] 大写字母
           [:blank:] 空白字符(空格和制表符)
           [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
           [:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
           [:digit:] 十进制数字 [:xdigit:]十六进制数字
           [:graph:] 可打印的非空白字符  [:print:] 可打印字符
           [:punct:] 标点符号
    匹配字数:
           * 匹配前面的字符任意次,包括0次   贪婪模式:尽可能长的匹配
           .* 任意长度的任意字符
           \? 匹配其前面的字符0或1次
           \+ 匹配其前面的字符至少1次
           \{n\} 匹配前面的字符n次
           \{m,n\} 匹配前面的字符至少m次,至多n次
           \{,n\} 匹配前面的字符至多n次
           \{n,\} 匹配前面的字符至少n次
    位置锚定:
           ^ 行首锚定,用于模式的最左侧
           $ 行尾锚定,用于模式的最右侧
           ^PATTERN$  用于模式匹配整行
           ^$  空行
           ^[[:space:]]*$  空白行
           \< 或 \b 词首锚定,用于单词模式的左侧
           \> 或 \b 词尾锚定,用于单词模式的右侧
           \<PATTERN\> 匹配整个单词
    分组:\(\) 将一个或多个字符捆绑在一起,当作一个整体处理,如:\(root\)\+ ?
        分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些 变量的命
        名方式为: \1, \2, \3, ... ?\1  表示从左侧起第一个左括号以及与之匹配右括号之间的模式所
        匹配到的字符 ?
        示例:  \(string1\+\(string2\)*\)
            \1 :string1\+\(string2\)*
            \2 :string2 ?
        后向引用:
            引用前面的分组括号中的模式所匹配字符,而非模式本身

扩展正则表示式:
    字符匹配:
        . 任意单个字符
        [] 指定范围的字符
        [^] 不在指定范围的字符
    次数匹配:
        * 匹配前面字符任意次
        ? 0或1次
        + 1次或多次
        {m} 匹配m次
        {m,n} 至少m,至多n次
    位置锚定:
        ^ 行首
        $ 行尾
        \<, \b 语首
        \>, \b 语尾
    分组:
        ()
        后向引用:\1, \2, ... 

vim编辑器(vi编辑器的升级版):

三种模式:
    1,命令模式,可以执行vim中的命令
    2,插入模式,在此模式下可以输入文本
    3,扩展命令,保存,退出等

配置文件:
    全局配置文件:/etc/vimrc
    个人配置文件:~/.vimrc 

Esc键 退出当前模式 ?
Esc键 总是返回到命令模式

命令模式 --> 插入模式
    i insert, 在光标所在处输入
    I 在当前光标所在行的行首输入
    a append, 在光标所在处后面输入
    A 在当前光标所在行的行尾输入
    o 在当前光标所在行的下方打开一个新行
    O 在当前光标所在行的上方打开一个新行

插入模式 --------> 命令模式
命令模式 --------> 扩展命令模式
扩展命令模式 --------> 命令模式 

扩展命令模式:
    :q 退出  :q! 强制退出,丢弃做出的修改
    :wq 保存退出
    :x 保存退出 ?
命令模式
    ZZ 保存退出
    ZQ 不保存退出

扩展命令模式:

按“:”进入Ex模式  ?
创建一个命令提示符:   处于底部的屏幕左侧 ?
常见命令
    w 写(存)磁盘文件
    wq 写入并退出
    x 写入并退出
    q  退出
    q! 不存盘退出,即使更改都将丢失
    r     filename  读文件内容到当前文件中
    w   filename  将当前文件内容写入另一个文件
    !command  执行命令
    r!command  读入命令的输出 

命令模式光标跳转:

行首行尾跳转:
    ^ 跳转至行首的第一个非空白字符
    0 跳转至行首
    $ 跳转至行尾
行间移动:
    #G 或者扩展命令模式下:#   跳转至由第#行
    G   最后一行
    1G, gg 第一行
句间移动:
    )  下一句
    (  上一句
段落间移动:
    }  下一段
    {  上一段 

命令模式翻屏操作:

?Ctrl+f 向文件尾部翻一屏 ?
  Ctrl+b 向文件首部翻一屏 ?
  Ctrl+d 向文件尾部翻半屏 ?
  Ctrl+u 向文件首部翻半屏 

命令模式操作:

yy:复制一行
dd: 删除一行(剪切)
x:删除一个字符
p:粘贴一行
v:选中一个或多个字符

命令模式查找:

/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找

命令模式撤销更改:

Ctrl - r 重做最后的“撤消”更改
Ctrl - u 撤销操作

命令模式调用系统命令:

!CMD 可不用退出调用系统命令

打开多个窗口编辑:

vim -o file1 file2 横向打开
vim -O file1 file2 纵向打开
ctrl w 切换窗口

原文地址:https://blog.51cto.com/14163901/2367965

时间: 2024-08-26 05:48:22

文本处理工具和正则表达式的相关文章

grep文本查看工具及正则表达式

grep文本查看工具及正则表达式 grep:搜索及过滤文本工具: (根据用户所指定的"模式"搜索,过滤条件"对目标文件进行过滤性匹配):grep自带正则表达式引擎工具. 所谓模式:由正则表达式所得元字符及普通文本字符所编写出来的过滤条件"模式" grep:三种支持模式: grep:基本正则表达式 egrep:支持扩展正则表达式 fgrep :不支持正则表达式 三种支持模式因其可以(grep -E:切换扩展,egrep-G:切换基本,分别有以-F切换fgre

Linux篇 | 文本处理工具和正则表达式 (一)

文本处理工具和正则表达式 如果用一句话形容Linux系统,我想就是"一切皆文件"在适合不过了.系统的服务.软件.日志.命令的输出结果都是基于文本的,所以我们很有必要知道Linux的常用的文本处理工具有哪些?而且,我们用的这些处理文本工具都离不开一个技术:"正则表达式",它不止适用于Linux,对于一些语言,如Java.Python都能用,甚至Windows系统里也能用正则表达式.那么,如何灵活的运用正则表达式就是这篇博客的意义. 一.文本处理工具 1.抽取文本的工具

Linux篇 | 文本处理工具和正则表达式(二)

文本处理工具和正则表达式 Linux文本处理三剑客 grep:文本过滤(模式:pattern)工具 >grep, egrep, fgrep(不支持正则表达式搜索) sed:stream editor,文本编辑工具 awk:Linux上的实现gawk,文本报告生成器 本篇主要讲述grep 一.grep 作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行.(模式就是"正则表达式") 模式:由正则表达式字符及文本字符所编写的过滤条件

文本处理工具和正则表达式、shell脚本编程基础-第四周

第四周-文本处理工具和正则表达式.shell脚本编程基础1. 统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户的个数,并将用户都显示出来grep -v '/sbin/nologin' /etc/passwd|wc -lgrep -v '/sbin/nologin' /etc/passwd|cut -d: -f12. 查出用户UID最大值的用户名,UID及shell类型.cut -d: -f1,3,7 /etc/passwd|sort -t: -k2 -nr

文本处理工具与正则表达式、grep

一.文本处理工具 1.文本查看命令 cat [OPTION]- [FILE]- -n 显示行号 -b 空格行不加行号,有字符的行才加 -s  相邻的空行压缩为一行,长和-n联用 -v 处理windows中的^M -T 可以看到tab\space -A  显示所有控制符(包括windows文本中的^M,^T) -E  显示行结束符$ (回车) tac [OPTION]- [FILE]-  将每个指定文件按行倒置并写到标准输出. 效果与cat 相反 rev  将指定文件从最后一个字符开始显示到第一个

文本管理工具及正则表达式的元数据总结

1.cat命令 功能: 显示文本内容,连接合并文本内容并在标准设备上输出 语法: cat [OPTION]... [FILE]... 选项: -E:显示行结束符(回车)$ -A:显示所有控制符,相当于-vET -n:对显示出的每一行进行编号 -b:对非空白行编号 -s:将连续的空行压缩成一行 -T:把TAB字符显示为^I -v:除了 LFD 和 TAB 之外所有控制符用 ^ 和 M- 记方式显示 示例: 查看/etc/issue文件内容 [[email protected] ~]# cat /e

关于 文本处理工具、正则表达式、grep 的简单举例

文本处理工具 抽取文本的工具 文件内容:less和cat 文件截取:head和tail 按列抽取:cut 按关键字抽取:grep 文件查看命令:cat,tac,rev cat [选项] [file] cat -n     对显示出的每一行进行编号 cat -b     非空行编号 cat -ns    连续压缩空行成一行 cat -v     显示回车符 cat -E     显示行结束符$ cat -A     显示所有控制符 tac file   反向显示内容 rev file   反向显示

grep文本搜索工具与正则表达式

一.文本搜索工具grep (一)grep简介 Linux上常用的三个文本处理工具被人们称为Linux文本处理三剑客,他们分别是: 1.grep(egrep,fgrep):文本搜索工具,基于"pattern"对给定的文本进行搜索操作. 2.sed:stream editor,流编辑器,行编辑工具,文本编辑工具. 3.awk:GNU awk,文本格式化工具,文本报告生成器. 他们都是很优秀的文本处理工具.现在,我就重点介绍下grep. grep:global search regular

DAY7:文本处理工具及正则表达式

8月4号,主要学习内容如下: 一.抽取文本的工具:less,cat,head,tail,cut 二.分析文本的工具:wc,sort,diff,patch 二.grep及正则表达式 三.egrep扩展正则表达式 一.抽取文本的工具 1)文件查看命令: cat  [OPTION]... [FILE]... -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 tac 功能与cat相同,显示内容为cat的逆序 2)分页查看工具 m