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)
上一篇 2016-08-07 14:17
下一篇 2016-08-07 22:05

相关推荐

  • 2016 10 19 第5天作业

    20161019第5天作业 软链接和硬链接的区别 硬链接 ①硬链接文件不能跨分区创建 ②一个硬链接文件的删除不影响其他链接的访问 ③链接文件指向的源文件被删除后,链接文件还能正常访问源文件的数据 ④硬链接的文件类型是 –  普通文件 ⑤硬链接和源文件的属性(大小,权限,时间戳,Inode号)相同 ⑥硬链接不能对目录创建 ⑦创建硬链接会增…

    Linux干货 2016-10-20
  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@itop ~]# fdisk /dev/sda&nbsp…

    Linux干货 2016-08-30
  • bash脚本进阶

     shell脚本流程控制     1.if语句 单分支: if 判断条件;  then   双分支: if 判断条件; then     条件为真的分支代码 else     条…

    Linux干货 2016-08-21
  • CentOS7安装Zabbix3.0版本应用

    一、Zabbix介绍        zabbix 简介   Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利  &n…

    Linux干货 2016-11-03
  • 用户和组——Linux基本命令(10)

    1.     用户和组的配置文件 Linux用户和组的主要配置文件: /etc/passwd:用户及其属性信息(名称、UID、主组ID等) /etc/group:组及其属性信息 /etc/shadow:用户密码及其相关属性 /etc/gshadow:组密码及其相关属性   2. /etc/passwd 在Li…

    2017-07-22
  • 使用CDN后,PHP如何获取用户的真是IP?

    在统计访问日志参数的时候IP是一个重要的参数,所有索取客户端的IP就至关重要。 在logformat配置中有两个变量是获取IP地址的: remoteaddr:客户端IP xforwardedfor:客户端的IP 从上面来看两个都是客户端IP,那这两个变量有什么不同? 首先当你访问某个网站,假设你中间不经过任何代理,那么webserver就会把remotead…

    Linux干货 2015-12-21