Marco Nie - grep https://blog.niekun.net/tag/grep/ zh-CN Wed, 27 Nov 2019 14:15:00 +0800 Wed, 27 Nov 2019 14:15:00 +0800 grep 全局匹配打印命令 in Linux https://blog.niekun.net/archives/546.html https://blog.niekun.net/archives/546.html Wed, 27 Nov 2019 14:15:00 +0800 admin grep: global regular expression print

常用来查找包含特定字符串的文件所在行并显示,也可以配合管道符:| 来有条件的过滤显示终端输出内容。

安装

apt-get install grep

使用

查找当前目录下后缀有 file 文件中包含 test 字符串的文件,并打印出该字符串的行:

grep test file

查找当前目录下文件名包含 file 的所以文件:

grep test *file*

查找目录及其子目录中所有文件包含 test 字符串的文件,并打印出该字符串的行:

grep -r test /path

忽略字符串匹配大小写:-i

grep -i "test" file

字符串匹配完整 word,不匹配 word 内字符串:-w

grep -w "is" file

上面命令不会匹配:his this 等单词。

配合其他命令过滤结果

可以使用管道符:| 将其他命令的输出作为处理对象

例如:

ps aux | grep file.sh

输出当前进程中包含 file.sh 的行,即可查看 file.sh 当前执行信息。

配合 xargs

通过 xargs 命令可以使用 grep 过滤出来的数据作为参数传递给其他命令。

例如:

cat abc.txt | grep demo | xargs echo

以上命令中,最后的 echo 会使用前面 grep 过滤的数据,逐行作为 stdin 传递给 echo 输出。

]]>
0 https://blog.niekun.net/archives/546.html#comments https://blog.niekun.net/feed/tag/grep/archives/546.html