笔记–8.4 文本处理工具,正则表达式

cat 查看文本文件

命令功能:

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

  -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

  -E :将结尾的断行字符 $ 显示出来;

  -T :将 [tab] 按键以 ^I 显示出来;

  -v :列出一些看不出来的特殊字符 grep -v '自己设定'

  -n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;

  -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

  -s: 当遇到有连续两行以上的空白行,就代换为一行的空白行

rev:cat所显示的内容每行内倒着显示


tac 作用等同于cat,不过是倒叙显示cat的内容

  优点:如果行数太多,用cat在屏幕上不会完整显示,需要配合more和less,假如我们所要看的内容在文本的后面,使用tac就会方便很多了

more:分页查看文件 more [OPTIONS…] FILE… 只能向下翻,不能向上翻·空格键:代表向下翻一页;

·Enter :代表向下翻一行;

·/字符串 :在显示的内容中,向下搜寻“/”后面的这个关键词;

·q :代表立刻离开 more ,不再显示该文件内容。

less :一页一页地查看文件或STDIN 输出,支持向上,向下翻页

·空格键 :向下翻动一页;

·pagedown:向下翻动一页;

·pageup :向上翻动一页;

·/字符串 :向下搜寻『字符串』的功能;

·?字符串 :向上搜寻『字符串』的功能;

·n :重复前一个搜寻 (与 / 或 ? 有关!)

·N :反向的重复前一个搜寻 (与 / 或 ? 有关!)

·g :前进到这个资料的第一行去;

·G :前进到这个数据的最后一行去 (注意大小写);

·q :离开 less 这个程序;

head 取出文件前n行,默认10行 

   -c #:指定获取前# 字节

   -n #:指定获取前#行 

tail 取出文件后n行,默认10行 

   -c #: 指定获取后# 字节

   -n #: 指定获取后#行 

   -f: 跟踪显示文件新追加的内容, 常用日志监(/var/log/messages 随时会有数据写入,想让该文件有数据写入时就立刻显示到屏幕上, 就利用 -f 这个选项,他可以一直侦测/var/log/messages 这个文件,新写入的数据都会被显示到屏幕上。 crtl-c 离开

    

练习:显示 /etc/man_db.conf 的第 11 到第 20 行

blob.png

cut 在指定的行中,按列切割,取出所需的字段

  -d :  指明分隔符,默认tab

  -f :

   #:  第# 个字段

   #,#[,#] :离散的多个字段,例如1,3,6

   #-# :连续的多个字段,  例如1-6

   混合使用:1-3,7

 -c 按字符切割

 –output-delimiter=STRING

  显示文件或STDIN 数据的指定列

blob.png

  

wc [- – lwm]

-l :仅列出行;

-w :仅列出多少字(英文单字);

-m :多少字符;

练习

知道使用 last 可以输出登入者,但是 last 最后两行并非账号内容,那么请问,该如何以一行指令串取得登入系统的总人次?

blob.png

grep 

–color=auto:  对匹配到的文本着色显示;

-v: 显示不能够被pattern 匹配到的行;

-i: 忽略字符大小写

-n:显示匹配的行号

-c: 统计匹配的行数

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

-q:  静默模式,不输出任何信息

-A # :after,  后#行 行

-B #: before,  前#行 行

-C # :context,  前后各#行 行

-e :实现多个选项间的逻辑or 关系    grep –e ‘cat ’ -e ‘dog’ file

-w :整行匹配整个单词

-E :使用ERE

blob.png

blob.png

sort把整理过的文本显示在STDOUT ,不改变原始文件  sort [options] file(s)

-r 执行反方向(由上至下)整理

-n 执行按数字大小整理

-f 选项忽略(fold )字符串中的字符大小写

-u 选项(独特,unique )删除输出中的重复行

-t c 选项使用c 做为字段界定符

-k X 选项按照使用c 字符分隔的X

blob.png

uniq:从输入中删除重复的前后相接的行   uniq [OPTION]… [FILE]…

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

-d:  仅显示重复过的行;

-u:  仅显示不曾重复的行;

连续且完全相同方为重复

  常和sort  命令一起配合使用:

sort userlist.txt | uniq -c

blob.png

英文大小写

[:alpha:]

英文小写 [:lower:]
英文大写 [:upper:]
数字 [:digit:]
数字+英文大小写 [:alnum:]
space,tab 两键 [:blank:]
键盘上控制键 CR, LF, Tab, Del.. [:cntrl:]
除了space和tab外的所有键 [:graph:]
标点符号 [:punct:]

blob.png

blob.png

blob.png

字符匹配:

. : 匹配任意单个字符;

[] :匹配指定范围内的任意单个字符

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

blob.png

blob.png

blob.png

位置锚定:定位出现的位置

^ :行首锚定,用于模式的最左侧

$ :行尾锚定,用于模式的最右侧

^PATTERN$:  用于模式匹配整行

^$: 空行

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

\< 或 \b :词首锚定,用于单词模式的左侧

\<PATTERN\>:匹配整个单词

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

# grep -n '0*' regular_express.txt

# grep -n '00*' regular_express.txt 

# grep -n '000*' regular_express.txt  

blob.png

blob.png

blob.png

blob.png 

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

赞 (0)
wutianyouwutianyou
上一篇 2016-08-07 22:06
下一篇 2016-08-07 22:06

相关推荐

  • linux之网络管理基础

    一.IP分配的概述 公式1 一个网段的主机数=2^主机位数-2 主机ID位数=32-网络ID位数 公式2 网络ID=IP与子网掩码 公式3 划分子网: 一个大网分成若干个小网 网络ID向主机位借位n,子网数2^n 公式4 损失IP-=(子网数2^n-1)*2 合并多个小子网成一个大的超网 如 172.16.0.0-172.31.0.0 就是主机ID向网络ID…

    Linux干货 2016-09-16
  • 利用 yum 查找某个命令属于哪个包

    当我们在安装一个不熟悉的命令是,会遇到个问题:Error: Nothing to do 而你又不知道该命令的是属于哪个rom包,莫慌~我们可以借助一个叫yum的基于rpm的软件包管理器。 以 dig 这个命令为例,当我安装它时会出现如下情况  [root@localhost ~]# yum install dig  Loaded plug…

    Linux干货 2016-03-27
  • Linux基础之LVM

    一.LVM介绍 LVM(Logic Volume Management)逻辑卷管理器,其基本原理就是将多个磁盘的分区在逻辑上进行组合,使之成为一个大容量的磁盘进行使用,可以实现动态的分配存储空间。 LVM基本模型以及基本术语,如下图所示: PV:物理卷,从逻辑上与磁盘分区具有同样功能的设备 VG:卷组,由一个或多个物理卷组成 LV:逻辑卷,具有逻辑边界的存储…

    Linux干货 2016-11-09
  • bash脚本作业

    1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。 2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出。 1、求100以内所有正整数之和 2、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,…

    Linux干货 2016-08-19
  • 马哥教育网络班22期+第3周课程练习

    1、列出系统上所有已登陆的用户的用户名,注意:同一个用户登录多次,只显示一次即可。     who | cut -d' ' -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息;    &…

    Linux干货 2016-09-26
  • N21_第7周_磁盘及文件系统管理

    N21_第7周_磁盘及文件系统管理 作业题目: 1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳…

    Linux干货 2016-09-26