首页 > 代码库 > 学习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-基础九(正则表达式)