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

相关推荐

  • ifconfig命令学习

    ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。 语法 ifconfig(参数) 参数 add<地址>:设置网络设备IPv6的ip地址; del&lt…

    Linux干货 2017-07-02
  • 用户与权限管理

    用户与权限管理      昨天学完了用户与权限管理,讲解了用户的运行机制和权限的作用。 用户的产生来源于3A机制:    认证(Authentication):就是验证用户身份的。    授权(Authorization) :验证完身份后,…

    2017-07-27
  • N22- 第五周

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost Packages]# grep -E "^(root|fedora|user1\>)" /etc/passwd | cut -d: -f…

    Linux干货 2016-11-21
  • linux进程管理

    Linux内核:抢占式多任务 进程类型: 1、守护进程:在系统引导过程中启动的进程,与终端无关的进程; 2、前台进程:跟终端相关,通过终端启动的进程,注意:也可把前台启动的进程送往后台,以守护模式运行;   进程状态: 运行态:running 就绪态:ready 睡眠态:a、可中断:interruptable;b、不可中断:uninterrupta…

    Linux干货 2018-02-08
  • php-fpm

    1.安装 mariadb 服务 修改配置文件 2.musql 安全加强 3.安装 php-fpm php-mysql php-mbstring php-mcrypt 服务 修改配置文件 4.安装httpd服务 加虚拟主机配置文件 5.测试php网页 6.安装myadmin包及测试

    2017-06-04
  • 文件、目录——Linux基本命令(7)

    1.     文件名规则 (1)文件名最长255个字节          (2)包括路径在内文件名称最长4095个字节 (3)文件颜色          蓝色-…

    2017-07-17