linux中的grep命令的功能是查找,就是匹配你想找的文件内容。这里要注意一下,仅支持匹配,不支持替换。
1 :语法格式:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep 支持不同的匹配模式,比如默认的 BRE 模式,增强型的 ERE 模式,还有更强悍的 PRE 模式。普通情况下使用默认的 BRE(basic regular expression) 模式就可以了,这种方式的特点是支持的正则表达式语法有限。如果需要更进一步的正则表达式语法支持,可以使用 ERE(extended regular expression) 模式。如果要使用复杂的正则表达式语法,可以使用 PRE 模式,它支持 Perl 语言的正则表达式语法。
2 :常用参数
--help
-V, --version
-G, --basic-regexp BRE 模式,也是默认的模式
-E, --extended-regexp ERE 模式
-P, --perl-regexp PRE 模式
-F, --fixed-strings 指定的模式被解释为字符串
-i 忽略大小写
-o 只输出匹配到的部分(而不是整个行)
-v 反向选择,即输出没有没有匹配的行
-c 计算找到的符号行的次数
-n 顺便输出行号
-r 递归查找
3 :示例
我这里只能给出简单的示例,和正则配合的部分,后期我看看正则,再补充。
(1):-i:忽略大小写
[root@iZuf60ynur81p6k0ysvtneZ opt]# grep -i A total.txt
1234567sdfdsfkjlxzscjlkjfolijasu
asjoidjuoaisdoaisdas
ah
jsdoljuasoidjoaisdja
jasoidjupoasdjipoa
as
sad
asd
asdas
asd
asd
asd
zxsdfas
xcvasd
(2):-n:输出行号
[root@iZuf60ynur81p6k0ysvtneZ opt]# grep -in A total.txt
1:1234567sdfdsfkjlxzscjlkjfolijasu
3:asjoidjuoaisdoaisdas
5:ah
7:jsdoljuasoidjoaisdja
9:jasoidjupoasdjipoa
11:as
13:sad
16:asd
18:asdas
21:asd
24:asd
28:asd
31:zxsdfas
(3):-v:反向选择
grep -ivn A test.txt
[root@iZuf60ynur81p6k0ysvtneZ opt]# grep -ivn A test.txt
1:这是我在创建文件的时候输入的内容
2:
3:这是文件内容结尾
4:
5:这是我追加的内容呀
6:STOP
7:
8:这是我第二次追加的内容啊
9:
[root@iZuf60ynur81p6k0ysvtneZ opt]#
(4):-r:递归查找
grep -r firefox /usr/bin/
[root@VM_0_4_centos bin]# grep -r firefox /usr/bin/
/usr/bin/firefox:## $ firefox
/usr/bin/firefox:MOZ_FIREFOX_FILE="firefox"
/usr/bin/firefox:if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
/usr/bin/firefox: if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
/usr/bin/firefox: echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
/usr/bin/firefox: echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
/usr/bin/firefox:MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox"
/usr/bin/firefox:export MOZ_APP_LAUNCHER="/usr/bin/firefox"
其他的正则相关的命令示例后期补充……
有好的建议,请在下方输入你的评论。