文本处理工具

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

相关推荐

  • 系统基础之AWK详解

    GUN awk 文本处理三工具:grup,sed,awk     grep,egrep,fgrep:文本过滤工具     sed:行编辑器         模式空间,保持空间   …

    Linux干货 2016-09-21
  • 一些鲜为人知的编程事实

    我的程序员经历让我明白了一些关于软件开发的事情。下面是一些在编程中可能会让人感到诧异的事情: 一个程序员用了大约只用了10%-20%的时间来编码,而且大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码最终会进入最终的软件产品中。这是因为,优秀的程序员会花费90%的时间来思考、调查、研究最佳的设计。而糟糕的程序员则会花费90%的时间来调试代码,并…

    Linux干货 2016-07-11
  • 测试

    3、查询file.txt以abc结尾的行grep "abc$" file.txt4、删除file.txt文件中的空行grep -v '^$' file.txt > file.txtsed '/^$/d' file.txt > file.txt(覆盖重定向文件变为空该文件为空,但是追加时正常成功。…

    Linux干货 2016-06-12
  • N25-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 linux上处理目录的常用命令:     ls :列出目录     cd :切换目录     pwd:显示当前工作路径    &nbs…

    Linux干货 2016-12-13
  • N21_第6周_vim

    N21_第6周_vim 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/…

    Linux干货 2016-08-15
  • 8-10 bash变量浅谈

    8-10 作业 一、脚本 1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中 3、编写脚本/root/bin/disk.…

    Linux干货 2016-08-15