文本处理工具

文本查看工具
less [les]  查看文件 功能比MORE更强大
     -N  显示行号
     查看时使用的命令
     / OR ? 搜索的内容    搜索关键字
          n下一个匹配到的内容
          N上一个匹配到的内容
     space 向下翻一页
     enter 向下翻一行
     u     向上翻半页
     y     向上翻一行

cat  查看文件  内容会直接全部输出在屏幕上
     -n    给每行前面加上行号
     -b    给非空行前面加上行号
     -s    把空行合并成一行
     -E    显示行结束符$
     -T    显示制表符
     -v    显示隐藏字符
     -A    -vTE的组合,显示所有隐藏字符
tac  倒着查看文件
more 查看文件  内容会一页一页的显示在屏幕上
     enter     查看下一行
     space     查看下一页
     Ctrl+B    查看上一页
     b         回到最上面
     q         退出
head 查看文件头10行(默认)
     -n number OR -number  查看文件前面指定数量的行数
     -c 总共获取的字符数
tail 查看文件后10行(默认)
     -n number OR -number  查看文件后面指定数量的行数
     -f /[file]            跟踪指定文件的新追加的内容 
     例子:tail -f /var/log/httpd/access_log | grep “172.16.1.10”
     -c 总共获取的字符数
—————————————————————
文本编辑工具
cut  选取文本  按要求输出文本的内容
     -d “:” 文本分隔符,默认是tab        
     -f #    以分隔符划分的第几个字段
             #           第几个字段
             #,#[#,#]     不相连的多字段
             #-#          连续的字段
             #-#,#        混合字段
     -c #    以每行第#字符截取
 例子:cut -d “/” -f 1-2,4 /etc/fstab
paste 合并2个文件的同行号
      -d 分隔符:指定行划分的界限
      -s 所有行显示在一行显示
例子:paste -d”:” -s file1 file2
—————————————————————–
文本数据收集与整理
wc  计算文本的单词,字,行数.
例子: $wc /etc/fstab
       17  90 993 /etc/fstab
   17是行数    -l       只看行数
   90是单词数  -w       只看单词数
   993是字符数 -c OR -m 只看字数
sort 排序整理文件
    -r    反响整理文件 (上大下小)
    -n    按数学大小排序
    -f    忽略大小写
    -u    删除重复的行
    -t #  使用#作为字段分界符
    -k #  使用#以分界符为段数来排序
例子:sort -t “:” -k 3 -n /etc/passwd
uniq 从输出中删除前后相连的重复内容(去重)
    -c    显示每行出现重复次数
    -d    之显示重复过的行
    -u    之显示不重复过的行(完全相同的行为重复)
例子:cat /etc/passwd | sort -n -d “:” -k 3 | sort -c
diff 比较2个文件的区别
例子:diff file1 file2
    6c6   第六行第六个字符不一样
    < kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
    —
    > kkkkk7kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
——————————————————————–
linux文本处理三剑客
grep文本搜索工具
        egrep 扩展正则表达式
        fgrep 不支持正则表达式
sed 行编辑器
awk 文本处理工具
grep 文本搜索工具(过滤)
     #     #搜索的文本,可以调用变量“$USER” ‘$USER’,也可以用命令`whoami`
     –color=auto  对匹配到的文本作色显示(7上支持)
     -v    不显示匹配到的内容
     -i    忽略大小写
     -n    显示匹配的行号,在前面显示匹配到的字段在文件里原有的行数位置
     -c    统计匹配的行数,之显示匹配到多少数量。
     -o    只显示匹配到的字符段。
     -q    静默模式,不输出任何信息。
     -w    匹配整个单词
     -e    指定多个条件,条件是或的关系
           例子:grep -e “root” -e “ftpd” /etc/passwd
     -A #  匹配到的字段所在行的后#行  (其他参数最好在前面)
     -B #  匹配到的字段所在行的前#行  (其他参数最好在前面)
     -C #  匹配到的字段所在行的前后#行(其他参数最好在前面)
     -E    相当于egrep,使用新的正则。(ERE)
     -F    相当于fgrep,不使用正则表达式。
REGEXP 正则表达式
       由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义。
       正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
程序支持:grep,sed,awk,wim,less,nginx,,varnish等
分类:
       BRE 基本正则表达式:grep
       ERE 扩展正则表达式:egrep   grep -E
PCRE   正则表达式引擎
       PCRE是一个perl库,采用不同算法,检查处理正则表达式的软件模块.
元字符  正则表达式中具有特殊意义的专用字符
元字符分类  字符匹配、匹配次数、位置锚定、分组
    字符匹配  (要用[]再把特殊元字符扩上,不然系统会认定是普通括号)
        .         匹配任意单个字符
        []        匹配指定范围内的任意单个字符
                      例子:grep -E [123] /etc/passwd
        [^]       匹配指定范围外的任意单个字符
                      例子:grep -E [^123] /etc/passwd
        [:alnum:] 匹配字母和数字
                      例子:grep -vE [[:almun:]] /etc/passwd
        [:alpha:] 匹配大小写字母
        [:lower:] 匹配小写字母
        [:upper:] 匹配大写字母
        [:blank:] 匹配空白区和制表符。等效于 [ \t]。
        [:space:] 匹配空格,制表符。
        [:cntrl:] 匹配不可打印的控制字符。(括换行符、换页符、退格、空格、空、制表符、空白等)
        [:digit:] 匹配十进制数字(0-9)
        [:xdigit:]匹配十六进制数字(0-f)
        [:graph:] 匹配打印字符。等效于 [[:alnum:][:punct:]]。 (换行可以匹配到)
        [:print:] 匹配打印字符和空格。(不包扩制表位)
        [:punct:] 匹配标点符号
    匹配次数  用在指定次数的字符后面,指定字符出现的次数。
        *         匹配前面字符出现最少0次,最多无限次。(贪婪模式)
                      例子:.*  匹配任意长度的字符
        \?        匹配前面的字符0至1次。
        \+        匹配前面的字符至少1次。
        \{n\}     匹配前面的字符N次。
        \{m,n\}   匹配前面字符至少出现M次,最多出现N次。
        \{,n\}    匹配前面的字符最多出现N次。
        \{n,\}    匹配前面的字符最少出现N次。
    位置锚定  定位出现的位置
        ^         行首锚定  用于模式的最左侧
                      例子:egrep ^[[:almun:]]* /etc/passwd
        $         行尾锚定  用于模式的最右侧
                      例子:grep -E [1-7]/{3,10/}$ /etc/passwd
        ^root$    整行匹配
        ^$        空行
        ^[[:space:]]$ 匹配空行
        \< or \b  词首锚定:用于单词的左侧
        \> or \b  词尾锚定:用于单词的右侧
        \b#\b or \<#\>   匹配整个单词
    分组      \(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理。
              分组括号里匹配到的内容,会存入变量1中。左往右,从1开始往下数。
              \1  表示左边第一个分组括号的匹配到的内容变量。
         \(string1\+\(string2\)*\)
         \1   string1\+\(string2\)*
         \2   string2
              后向引用:引用前面的分组括号中的模式所匹配字符,而非 模式本身
         \|   或  a\|b  a or b。

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

(0)
sheepsheep
上一篇 2017-04-13
下一篇 2017-04-13

相关推荐

  • 马哥教育网络班22期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; &n…

    Linux干货 2016-12-05
  • socket阻塞与非阻塞,同步与异步、I/O模型

    1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前…

    Linux干货 2015-04-10
  • Linux基础之—基础权限和特殊权限以及FACL权限管理

    Linux是多用户多任务的操作系统,了解掌握Linux的权限分配机制,也是管理Linux系统安全的基础之一。 文件目录的权限格式如下:   1.其中权限位可以看对象到是一个9个占位符,其实分为三位一组: (1) 第一组:对应的是文件或目录的所有者属主权限。owner (2) 第二组:对应的是文件或目录的所属组权限。group (3) 第三组:对应的…

    Linux干货 2016-08-07
  • Linux – 计算机基础知识体系

    一、认识计算机的组成      计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。 计算机一般是由硬件系统和软件系统这两部分组成,硬件系统包括:CPU、内存、硬盘、输入和输出设备(键盘鼠标、显示器等),软件系统包括:系统软件自身、用…

    Linux干货 2017-02-19
  • 硬链接与软链接的联系与区别

    硬链接与软链接的联系与区别 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(ino…

    Linux干货 2016-10-23
  • sed行编辑器

    Linux文本处理三剑客之一:sed(Stream Editor)流编辑器 sed:     将指定的文本文件内容逐行读取至sed的临时内存空间当中,称为"模式空间",而后逐行查看是否被sed的地址定界所匹配到,如果匹配,则执行相应的编辑操作,否则,默认将模式空间中的内容打印至标准输出  …

    Linux干货 2016-08-15