2016/08/07:文本处理工具及正则表达式

  在本次课程中,本以为和前面的内容难度差不多,内心毫无提防,但在做随堂练习的时候,被惨虐,不由得使我想起了高三时候拿到一张数学单元练习题,一道题也不会做的那种感觉,无助,彷徨,不甘。到了晚上总结了一下,还是有缘由可寻的。直接原因就是前面知识记得不牢固,也并未完全理解是和意思,尤其是tr命令,适用于何处,没按照5W1H方法来进行总结学习,导致应用的时候思路不清,不能做到学以致用。以后的学习还得更用心,同时讲究方式方法啊。



为何要使用文本处理工具和正则表达式,原因在于以前学过的tr,cut等命令大多数适合处理小部分字符,并且效率有限,所以更近一步搭配使用grep。正则的出现是为了精准的对所需要的字符串进行匹配,更加高效的查找。

1.

查看文本内容

less: opposite of more

more

两个功能类似,less更全面一点,可以向前翻页,pageup,pagedown

还可以/进行字符搜索

2.文件截取

  head

    -c 指定获取文件前多少字节

    -n 取行

    – # 等同取-n 

head.png

  tail

    -c 后多少字节

    -n 后几行

    -#

    -f 跟踪显示文件新追加的内容,常用于日志监控

3.

cut 抽取文本字段

    -d 指明分隔符

    -f #

    -f1-3,7 打印1,2,3,7字段

    -c11-29 :打印从左至右第11字符到第29字符

    –output-delimiter=STRING 指定输出分隔符

4.paste 合并两个文件同行号的列到一行

    paste f1 f2

    paste -s  f1 f2

5.分析文件工具,整理统计,比较

    wc:数据统计

    $wc f1

  39      237   1901     f1

  行数  字数   字符数   文件名称

QQ截图20160807173114.png

 wc

  -l line:只计行数

  -w   单词数

  -c  数字总节数

  -m 字符总数

 sort

  -r

  -n 执行数字大小整理

  -f 

  -u 删除输出中的重复行

  -t c :选项使用c作为定界符

  -k X :按照X列来排序

 uniq:从输入中删除重复的前后相接的行

  -c 显示每行重复重复出现的次数

  -d 仅显示重复的行

  -u 仅显示不曾重复的行

 diff 比较两个文件之间的区别

****************************

随堂练习

     1、找出ifconfig命令结果中本机的所有IPv4地址

    2、查出分区空间使用率的最大百分比值

    3、查出用户UID最大值的用户名、 UID及shell类型

    4、查出/tmp的权限,以数字方式显示

    5、统计当前连接本机的每个远程主机IP的连接数,并按从大

    到小排序

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

******************************

文本处理第一大剑客

grep:Global search REgular expression and Print out the line

用指定模式进行逐行匹配

grep 

–color=auto:匹配到的文本着色,最好写入环境变量中~/.bashrc

-v 取反,显示不能被匹配到的行

-i 忽略字符大小写

-n 显示行号

-c 统计匹配到的行数

-o 仅显示匹配到的字符串

-q 静默模式,无任何输出

-A after,后几行

-B before,前几行

-C 前后各n行

-e 实现多个选项间的逻辑or关系

grep -e 3 -e 9

-w

-E ERE,=egrep,扩展的正则表达式

****************************

****************************

****************************

REGEXP

字符匹配

. 任意单个字符

[] 括号内的任意单个字符

[^] 指定范围外的任意单个字符

[:alpha:] 所有字母

[:alnum:] 数字和字母

[:punct:] 标点符号

[:digit:] 所有数字 

次数匹配

* 匹配前面的字符任意次,包括0次,贪婪模式

.* 任意长度的任意字符

\?  前面的字符0或者1次

\+ 匹配前面的字符至少一次

\{m\} 匹配前面的字符至少m次

\{m,n\} 至少每次,至多n次

位置锚定

^ 行首锚定

$ 行尾锚定

^$ 空行

^PATTERN$ 用于模式匹配整行

^[[:space:]]$:空白行

\< 词首锚定 \b

\> 词尾锚定 \b

\<PATTERN\> 匹配整个单词

***

分组  分组括号中的模式匹配到的内容会被正则表达式引擎记录

 于内部的变量中,这些变量的命名方式为: \1, \2, \3, …

后向引用:引用前面模式匹配到的字符

********************

随堂练习2

   1.显示/proc/meminfo文件中以大小s开头的行; (要求:使

用两种方式)

    2、显示/etc/passwd文件中不以/bin/bash结尾的行

    3、显示用户rpc默认的shell程序

    4、找出/etc/passwd中的两位或三位数

    5、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的

    且后面存非空白字符的行

    6、找出"netstat -tan"命令的结果中以'LISTEN'后跟0、 1

    或多个空白字符结尾的行

    7、添加用户bash、 testbash、 basher以及nologin(其shell为

    /sbin/nologin),而后找出/etc/passwd文件中用户名同shell名

    的行

************************

egrep

次数匹配

?0或1次

+ 至少一次

{m} 匹配m次

{m,n}:至少m次,至多n次

分组:

()

后向引用 \1,\2

或者

a|b:

C|cat:

(C|c)at或cat

******************************

随堂练习3

    1.显示当前系统root、 mage或wang用户的UID和默认shell

    2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包

      括下划线)后面跟一个小括号的行

    3、使用egrep取出/etc/rc.d/init.d/functions中其基名

    4、使用egrep取出上面路径的目录名

    5、统计以root身份登录的每个远程主机IP地址的登录次数

    6、利用扩展正则表达式分别表示0-9、 10-99、 100-199、

    200-249、 250-255

    7、显示ifconfig命令结果中所有IPv4地址

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

(0)
000000
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • KeepAlived的配置及使用!

    此篇博客主要是和大家共同了解一下keepalived的功能及基础配置,以便于牢固掌握,此篇博客共分为三个部分;                ⊙ 简述keepalived的主要功能及安装环境;           &nb…

    2017-05-13
  • Mariadb数据库备份恢复系列(一):mysqldump逻辑备份工具实战

    实验一:利用mysqldump+二进制日志实现备份恢复数据库 1、查看原始数据 2、mysqldump执行备份 3、模拟在备份后修改数据,模拟利用二进制日志还原的场景 4、还原mysqldump备份的数据 5、导出二进制日志的事件 6、还原二进制日志事件   

    Linux干货 2016-11-24
  • Vim编辑工具用法的总结

    描述:    Vim是一款强大的命令行界面的文本编辑器,是vi的高级版本,先说下学习它的原因:  1,所有的UNIX Like 系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;  2,很多软件的编辑接口都会主动调用vi  3,vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设…

    Linux干货 2016-08-11
  • 正则表达式基础

    正则表达式正则表达式    元字符:        .       点表示任意单个字符 最少一次        \w      匹配字母、数字、下划线、或汉字。        \s      匹配任意空白字符        \d      匹配数字        \b      匹配字符的开始或结束        ^       匹配首字符        $…

    Linux干货 2017-11-14
  • shell脚本之数组

    认识数组:    变量是存储单个元素的内存空间,而数组就是多个变量的合集,是一串连续的空间,但是,整个数组只能有一个名字。    数组内的数据都有指定的索引,以找到数组内指定的数据。索引的编号是从0开始,依次递增(0,1,2,3…),属于数值索引。索引也支持自定义的格式,而不仅是数值格式的索引,即为关联索引…

    Linux干货 2016-08-26
  • 程序员的相关笑话(二)

    从前,有一个牧羊人,他有很多的羊。一天他赶着他的那群羊到了一条公路边上。突然,有一辆保时洁急驶过来,上面坐着一个年轻人人,穿着Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太阳眼镜,TAG-Heuer的手表,以前Versace的领带。 他走到牧羊人面前问牧羊人:“如果我能说出你有多少只羊,你能给我一只吗?” 牧羊人看了看他那一大群数都数不过来的…

    Linux干货 2016-07-10