文本处理工具

文本查看工具
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

相关推荐

  • 第6天预习xargs命令的用法

    Xargs用法详解 1. 简介   之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: find /sbin -perm +700 |ls -l     &n…

    Linux干货 2016-08-05
  • 5.程序包管理与内核命令的使用

    1、  显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ~]#  grep -E “^[[:space:]]+” //boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2.6.32-279.el…

    Linux干货 2017-07-30
  • Linux的诞生史

    Linux诞生史 远古记忆-UNIX的诞生 Multics计划—开始 这是由麻省理工学院,通用电气和AT&T的贝尔实验室合作的操作系统项目,用于使用在GE-645大型主机上的。但是由于整个目标过于庞大,Multics虽然发布了一些产品,但是性能都很低,AT&T退出了Mulitcs项目,计划终止。肯.汤姆逊当时也参加了这个项目,很不…

    2017-07-11
  • 什么是Ansible?

    自动化工具——ansible   ansibleArchitecture ansibleProject 1. 什么是ansible ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持…

    2017-09-24
  • LVM管理

    1、逻辑卷管理器(LVM) (1)逻辑卷管理器(LVM,logical volume manager)可以整合多个物理分区在一起,让这些分区看起来就像一个磁盘一样,而且,还可以在将来其他的物理分区或将其从这个LVM管理的磁盘中删除。这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,同时LVM还有快照功能。 (2)逻辑卷管理器的基本术语 物理…

    Linux干货 2016-09-01
  • 搭建lnmp实现动静分离

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 (nginx主机)web 处理静态内容 172.16.250.149 (fpm server   mariad bserver)处理动态内容 172.16.253.131 以上为两台CentOS7.3主机 试验拓扑图如下:   ==…

    2017-07-22