笔记–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