大家论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载

(点击上方公roare众号,可快速重视)


英文:tecmint,翻译:Linux我国/Linux-pdz

linux.cn/article-2250-1.html

如有好文章投稿,请点击 → 这儿了解概况


你是否遇到过需求在文件中查找一个特定的字符串或许款式,可是不知道从哪儿开端?那么,就请grep来帮鬼夫晚上好你吧。



grep是每个Linux发行版都预装的一个强有力的文件形式查找东西。不管何种原因,假定你的体系没有预装它的话,你能够很简略的经过体系的包管理器来装置它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum)。


$ sudo apt-get install grep #Debian/Ubuntu $ sudo yum install grep #RHEL/CentOS/Fedora


我发现运用实际国际中的实在比如让你投身其间是让你触摸grep指令的最简略方法。


1.查找和寻觅文件


假定你现已在你的电脑上装置了一个全新的Ubuntu,然后你计划卸载Python。你阅览网页寻觅教程,可是你发现存在两个不同版别的Python在运用,而你不知道你的Ubuntu装置器究竟在你的体系中装置了哪个版别的Python,也不知道它装置了哪些模块。处理这个烦恼只需简略的运转以下指令:


 $ sudo dpkg -l | grep 焦裕禄-i python


输出比如


   ii  python2.7         2.7.3-0ubuntu3.4 Interactive high-level object-oriented lan咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载guage (version 2.7)

&咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载nbsp;  ii  python2.7-minimal 2.7.3-0ubuntu3.4 Minimal subset of the Python language (version 2.7)

   ii  python-openssl    0.12-1ubuntu2.1  Pyth有姝on wrapper a大明王朝round the OpenSSL library

   ii  python-pam &nbs咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载p; 潘伟珀微博     0.4.2-12.2ubuntu4 A Python interface to the PAM library


首要,咱们运转dpkg -l列出你体系上装置的.deb包。接着,咱们运用管道将输出成果传输给指令grep -i python,这一步能够简略解说为把成果传输给grep然后过滤出一切含有python的项,并回来成果。–i选项用于疏忽大小写,由于 grep 是大小写灵敏的。运用选项-i是个好习咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载惯,除非你计划进行更细节的查找。


2.查找和过滤文件


grep还能够在一个或多个文件里用于查找和过滤。让咱们来看一个这样的情形:


你的Apache网页服务器呈现了问题,你不得不从许多专业网站里找一个发帖问询。好意回复你的人让你张贴上来你的/etc/apache2/sites-available/default-ssl文件内容。假定你能移除去一切的注释行,那么对你,对帮你的人,以及一切阅览该文件的人,不是更简略发现问题吗?你当然能够很简略的做到!只需这样做就能够了:


 $ sudo grep -v "#" /etc/apache2/sites-available/default-ssl


选项-v是通知grep指令回转它的输出成果,意思便是不输出匹配的项,做相反的事,打印出一切不匹配的项。这个比如中,有#的是注释行(译注:其实这个命王莲令并不准确,包括“#”的行不满是注释行。关于怎么准确匹配注释行,能够了解更多的关于正则表达式的内容。)。


3.找出一切的mp3文件


grep指令关于过滤来自于规范输出的成果十分有用。例如,假定你的一个文件夹里边满是各种格局的音乐文件。你要找出艺术家jayZ的一切mp3格局的音乐文件,里边也不要有任何混合音轨。运用find指令再结合管道运用grep就能够完结这个魔法:


 $ sudo f咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载ind . -name ".mp3" | grep -i JayZ | grep -vi "remix""


在这个比如中,咱们运用find指令打印出一切以.mp3为后缀名的文件,接着将其运用管道传递给grep -i过滤和打印出姓名为“JayZ”的文件,再运用管道传送给grep -vi以便过滤掉含有“remix”的项。


4.在查找字符串前面或许后边显女娲补天示行号


别的两个选项是-A和-B之间的切换,是用以显现匹配的行以及行号,别离控制在字符串前或字符串后显现的行数。Man页给出了愈加具体的解说,我发现一个回忆的小诀窍:-A=after、-B=before。


 $ sudo ifcon灌南气候fig | grep -A 4 etho $ sudo ifconfig | grep -B 2 UP


5.在匹配字符串周围打印出行号


grep指令的-C选项和例4中的很类似,不过打印的并不是在匹配字符串的前面或后边的行,而是打印出两个方向都匹配的行(译注:同上面的回忆诀窍相同:-C=center,以此为中心): $ sudo ifconfig | grep -C漂洋过海来看你原唱 2 lo


6.核算匹配何应钦项咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载的数目


这个功用类似于将grep输出的成果用管道传送给计数器(wc程序),grep内建的选项能够到达相同的意图:


$ sudo ifconfig | grep -c inet6


7.按给定字符串查找文件中匹bring配的行号


当你在编译犯错时需求调试时,grep指令的-晋朝n选项是个十分有用的功用。它能通知你所查找的内容在文件的哪一行:


$ sudo grep -n "main" setup.py


8.在一切目录里递归的查找


假若你要在当时文件夹里查找一个字符串,而当时文件夹里又有许多子目录,你能够指定一个-r选项以便于递归的查找: $ sudo grep -r “function” *


9.进行准确匹配查找


传递-w选项给grep指令能够在字符串中进行准确匹配搜瓷都算命索(译注:包括要查找的单词,而不是通配)。例如,像下面这样输入:


$ sudo ifconfig | grep -w “RUNNING”


将打印出含有引号内匹配项的行。别的,你还能够试一下这个:


$ sudo 大王椰板材ifconfig | grep -w “RUN”


查找这个匹配项时,若查找的东西里边没有这样的一个独自的单词,将什么也不会回来。


10.在Gzip紧缩文件中查找


咱们还要重视一下grep的衍生运用。第一个是zgrep,这个与zcat很类似,能够用于gzip紧缩过的文件。它有与grep类似的指令选项,运用方法也相同:


$ sudo zgrep -i error /var/log/syslog.2.gz


11.在文件中匹配正则表达式


egrep是另一个衍生运用,代表着“扩展大局正则表达式”。它能够辨认更多的正则表达式元字符,例如at + ? | 和()。在查找源代咱们论坛,具惠善-金博宝 188bet_金博宝体育app_188宝金博下载码文件时,egrep是一个十分有用的东西,还有其他的一些琐细代码文件的查找需求,使得这样的查找才能成为必需。能够在grep指令中运用选项-E来启用它。


$ sudo grep -E


12.查找一个固定匹配字符串


fgrep用于在一个文件或文件列表中查找固定款式的字符串。功用与grep -F同。fgrep的一个一般用法为传递一个含有款式的文件给它:


$ su细菌感染do fgrep -f file_full_of_patterns.txt file_to_searsystemch.txt


这只是接连不断是grep指令的开端,你或许现已注意到,它关于完成各式各样的需求简直是太有用了。除了这种咱们运转的这种只要一行的指令,grep还能够写成cron辽宁舰使命或许主动的shell脚本去履行。坚持好奇心,实验一下man页的各个选项,为完成你的意图写出一些grep表达式吧。



看完本文有收成?请共享给更多人

重视「Linux 爱好者」,提高Linux技术

转载原创文章请注明,转载自金博宝 188bet_金博宝体育app_188宝金博下载,原文地址:http://www.0newpoints.com/articles/534.html

上一篇:手机定位软件,灌篮高手国语版-金博宝 188bet_金博宝体育app_188宝金博下载

下一篇:tencent,石家庄-金博宝 188bet_金博宝体育app_188宝金博下载