文本处理工具

文本查看工具
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 11:35
下一篇 2017-04-13 15:42

相关推荐

  • 实现CenOS7网卡名传统方式

    网卡命令:理念 CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当 增加或删除网卡时,名称可能会发生变化 CentOS 7使用基于硬件,设备拓扑和设置类型命名: (1) 网卡命名机制 systemd对网络设备的命名方式 (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信 息可用,且可预测则根据此索引进行命名, 例如en…

    Linux干货 2017-12-19
  • Linux之任务计划 crontab

    Linux之任务计划    用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如…

    Linux干货 2015-05-18
  • 数组详解

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合          数组名:整个数组只有一个名字     数组索引:编号从0开始,属于数值索引     &n…

    Linux干货 2016-08-24
  • 网络服务之Apache

      互联网这个历史已经不算很短了,它大大方便了人类获取信息,开阔了人类的眼界,使得让这个世界变得小了起来,人与人之间的距离感也不会存在了,娱乐也更加丰富,听音乐、看电影等等这一系列,都能从网上进行,这些功能,都是由www服务器来提供服务,在Linux中,提供网络的服务器有很多种,那么今天我们就讲一个比较老牌,且依然能存活的服务器“阿帕奇”…

    Linux干货 2017-01-13
  • 在VMware workstations中安装CentOS-7-x86_64-Everything-1611.ISO

      对于最近在Linux学习的过程中,许多同学对CentOS系统的详细配置还不熟悉,于是我编写此详细步骤供大家参考。 工具: VMware workstations; CentOS-7-x86_64-Everything-1611.iso; 准备工作:  1、先要下载一个系统镜像centOS-7-x86_64-Everythin…

    2017-07-11
  • LVS基本原理

    LVS基本原理 简介 负载调度器、真实服务器群节点一起被称为LVS。LVS负载调度器(有时也称为负载平衡器),接收所服务的所有接入服务集群的请求,并决定集群中的哪个节点应该回复其请求。 1)负载调度器(Director):作为整个集群的前端,主要将用户请求分发至真实服务器中进行处理。 2)真实服务器池:由多个功能相同的真实服务器组成,为用户提供真正的网络服务…

    Linux干货 2016-12-27