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"
其他的正则相关的命令示例后期补充……
有好的建议,请在下方输入你的评论。