Linux 笔记

博客地址:http://www.moonxy.com

Linux 系统中提供了大量的命令,从文件目录管理,用户管理,到系统监控等等,功能非常丰富,但有几个是常用且重要的命令。

1. 命令 grep

作用:

grep, egrep, fgrep - print lines matching a pattern,grep用来过滤字符串信息。

格式:

grep [options] 'pattern' filename

常用选项(参数)

不区分大小写:

grep用来过滤字符串信息,grep默认对字母大小写敏感,不过可以通过选项对grep屏蔽大小写敏感,该选项为 -i。

$ grep –i "abc"

# 结果为abc,ABC, abcde, Abcd 等

模糊匹配:

$ grep "abc"

# 结果为abcd, abcde, abc 等

全匹配:

grep -w abc 会打印出包含 abc 词的行,abc 词后面如果还有字母、数字和下划线,则不会被匹配,其他的则都能匹配到

$ grep -w "abc"

# 结果为abc,abc++ 等

递归查询:

grep -R, -r,--recursive,递归读取每个目录下的所有文件,效果和指定"-d recurse"参数相同。

显示行号:

-n 在显示符合范本样式的那一列之前,标示出该列的行编号。

$ grep -n aa test1.txt
1:aaaaabbbbb
2:Adamaa
5:123aa45

使用范本:

-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让 grep 查找符合范本条件的文件内容,格式为每一列的范本样式。

$ cat test1.txt |grep -nf test3.txt
1:aaaaabbbbb
2:Adamaa
5:123aa45

标记匹配颜色:

--color=auto 或直接 --color,可将参数放在中间,也可放到最后。

$ grep --color=auto aa test1.txt

或者

$ grep --color aa test1.txt

统计匹配的行数:

使用 grep -c 或者 grep | wc -l,作用类似,不同的是,如果是查找多个文件,grep -c 会统计每个文件匹配的行数,每行一个文件的列出来,而 wc -l 则列出总的统计数字。另外 grep -c 要比 grep | wc -l 快一点。

$ grep aa *.txt -c
test1.txt:3
test2.txt:2
test3.txt:1
test4.txt:0

$ grep aa *.txt | wc -l
6

匹配不符合条件的行,即取反, -v, --invert-match

[root@ryan linux]# grep -n "jiang" test2
4:adam:30:xinjiang:123123:python
7:ada:16:shengjiang:123321:rubby

[root@ryan linux]# grep -nv "jiang" test2
1:bob:26:shanxi:138912:linux
2:
3:ryan:28:china:23124:java
5:
6:emily:20:beijing:35345:scala
8:jim.green:18:shandong:123321:rubby
9:tom:16:hebei:123321:ru.bby
10:http://www.baidu.com/musicdocument,mp3

还有一些参数,如下:

-A:后面跟一个数字(有无空格都可以),例如 -A2 表示打印符合要求的行以及下面两行;--After

-B:后面跟一个数字(有无空格都可以),例如 -B2 表示打印符合要求的行以及上面两行;--Before

-C:后面跟一个数字(有无空格都可以),例如 -C2 表示打印符合要求的行以及上下各两行;--Context

原文地址:https://www.cnblogs.com/cnjavahome/p/8483526.html