大家使用linux过程中,是否遇见大文件中查找特定字符串或模式任务,不知道从哪里着手的情况?Grep命令在这时就发挥出重要作用。Grep属于一个功能强大的文件模式搜索器,每个linux版本都配置了,如果出现一些特殊情况linux中没有安装grep,可以用以下命令进行安装:
$ sudo apt install grep [在Debian、Ubuntu 和 Mint上]
$ sudo yum install grep [在RHEL/CentOS/Fedora和Rocky Linux/AlmaLinux上]
$ sudo emerge -a sys-apps/grep [在Gentoo Linux上]
$ sudo apk add grep [在Alpine Linux上]
$ sudo pacman -S grep [在Arch Linux上]
$ sudo zypper install grep [在OpenSUSE上]
安装后就可以在linux中用个grep搜索。如当服务器安装新版ubuntu,想尝试应用python脚本,但是网络中可以找到两种不同python版本,不知道自己当前所用python是哪个版本或者是安装了哪些模块,这时候可以用grep命令的dpkg命令:
dpkg-l|grep-i python
先运行dpkg –l,它会列出*.deb系统上已安装的软件包。其次将该输出通过管道传输到grep -i python,它只是表示“转到grep并过滤掉并返回其中带有python的所有内容。选项-i是忽略大小写,因为grep区分大小写。使用此-i选项是一个好习惯,当然,除非您尝试进行更具体的搜索。
如果是在linux中查找全部.mp3文件,可以使用find命令配合grep管道来实现。您想查找Tom的所有*.mp3文件,但不想要任何混音曲目。使用find 命令和几个grep管道实现:
# find . -name “*.mp3” | grep –i Tom | grep –vi “remix”
find来检索所有带有*.mp3扩展名的文件,通过管道grep –i将其过滤掉并打印所有名为“ Tom”的文件,然后通过另一个管道过滤掉并且不打印所有带有字符串(在任何情况下)“ remixgrep –vi ”的文件名。
grep还可以用于单个文件或多个文件中搜索和过滤。如使用apache web服务器出现一些问题,且已经从相关专业论坛找到解决方法,方法需要发布找到/etc/apache2/apache2.conf文件内容,再删除其他注释:
grep -v ^\# /etc/apache2/apache2.conf | grep 。
-v选项告诉grep反转其输出,这意味着不是打印匹配的行,而是执行相反的操作并打印所有与表达式不匹配的行,在本例中是#注释的行。在grep .末尾使用了 来隐藏所有空行的输出。这样,我们在终端中只会看到配置设置。如需要更多帮助请联系华纳云!