首页 > 代码库 > 学习linux-基础九(正则表达式)
学习linux-基础九(正则表达式)
一、概述:
Linux核心哲学思想中很重硬件要的一条内容就是一切皆文件,在Linux系统上,无论硬件、软件、配置文件等等一切,都以文件形式呈现出来。一般文件类型有:普通文件、目录文件、链接文件、管道文件、套接字文件、字符设备文件、块设备文件等。而普通文件里面又有一些文本文件、二进制文件等细分化的文件类型,而我们日常系统管理工作,主要就是对一些文本类型的文件,进行新增、删除、修改、查询等相关操作,来完成系统的维护,那么对文本处理就变成了我们必不可少的基础既能。
本章就先简单介绍一些文本的查看,分析,统计工具,以及正则表达式和grep的相关内容,主要的内容包含以下几个部分:
1、文本查看工具介绍(cat、tac、rev、head、tail、more、less、cut、paste)
2、文本统计工具介绍(wc、sort、uniq)
3、文本比较工具介绍(diff、patch)
4、基本正则表达式和扩展正则表达式介绍
5、文本处理三剑客之grep介绍
涉及到的命令主要有:cat、tac、rev、head、tail、more、less、cut、paste、wc、sort、uniq、diff、patch、grep、egrep、fgrep
第一章 文本查看工具介绍
1、cat文本查看工具
语法:cat [OPTIONS] FILE
常用选项:
-n 显示行号,空白行也加
-b 显示行号,空白行不加
-ns 显示行号,然后出去重复的行显示为一行(相邻且相同)
-T 显示TAB键
-v 显示^M ,也就是\r 的内容,相当于显示Windows的换行键
-A 显示所有的内容,所有的隐藏字符,TAB、换行之类的
示例:
[root@zcl ~]# cat -nA /etc/issue 1 CentOS release 6.8 (Final)$ 2 Kernel \r on an \m$ 3 \l @ \n at \t \d$
2、tac:文本查看工具,与cat一样,只是把cat的内容按行倒序显示
示例:
[root@zcl ~]# tac /etc/issue \l @ \n at \t \d Kernel \r on an \m CentOS release 6.8 (Final)
3、rev:反向显示文件中每一行的内容
例如:如文件中是abcdefg,如果用rev显示,则显示为gfedcba
[root@zcl ~]# rev /etc/issue )laniF( 8.6 esaeler SOtneC m\ na no r\ lenreK d\ t\ ta n\ @ l
4、head:显示文件的前几行,默认是前10行
语法:head [OPTIONS] FILE…
常见选项:
-n 数字:表示显示文件的前几行
-数字:与-n 数字 功能一样,显示文件的前几行
-c 数字:表示显示文件的前多少个字节,而不是多少行
示例:
[root@zcl ~]# head -n 5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@zcl ~]# head -2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@zcl ~]# head -c 2 /etc/passwd
5、tail:显示文件的后几行,默认是10行
语法:tail [OPTIONS] FILE…
常见选项:
-n 数字 :显示文件后几行
-数字:与-n 数字 功能一样,显示文件的后几行信息
-n +数字: 从第几行开始显示文件信息
-c 数字:显示文件的后多少个字节,而不是后几行
[root@zcl ~]# tail -n 3 /etc/passwd moon:x:3010:3010::/tmp/test:/bin/csh gentoo:x:4001:4001::/var/tmp/gentoo:/bin/csh netadmin:x:4003:4003::/home/netadmin:/bin/csh [root@zcl ~]# tail -2 /etc/passwd gentoo:x:4001:4001::/var/tmp/gentoo:/bin/csh netadmin:x:4003:4003::/home/netadmin:/bin/csh [root@zcl ~]# tail -c 5 /etc/passwd /csh [root@zcl ~]# tail -n +3 /etc/passwd daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt #省略
6、more:分页显示文件内容,只能向下翻页,不能向上翻页
选项:
-d 能显示提示信息
在more界面中,可以运行:
!执行外部命令
/string 搜索关键字
!COMMAND 在more界面下,执行bash命令结果显示在more界面中,不用退出more
q 退出more界面
7、less:分页显示文件内容,既能向上翻页,又能向下翻页
在less界面时:
/string 向下搜索关键字
?string 向上搜索关键字
n 按照搜索方向,顺向显示下一个匹配到的内容
N 按照搜索方向,逆序显示下一个匹配到的内容
!COMMAND 在less界面下,执行某命令,不用退出less
q 退出less界面
8、cut:字段截取工具,按照指定的分隔符进行分割后显示,默认分隔符为TAB键
语法:cut[OPTION]…[FILE]…
-d 指定分隔符,默认为tab
-f FILEDS
# 第#个字段
#,#,… 离散的多个字段,如-f1,3,6
#-# 连续的多个字段,如-f1-3
-c 按字符切割,取第几个字符到第几个字符数显示的内容
–output-delimiter=STRING 指定输出分隔符
学习linux-基础九(正则表达式)