Linux/Linux 下如何检索文件内容

Linux/Linux 下如何检索文件内容

管道操作符:|

可以将指令连接起来,前一个指令的输出作为后一个指令的输入 find ~ | grep "test" 的作用是在当前目录以及子目录中查找文件名包含 test 的文件以及文件夹,与 find ~ -name "test" 作用相同。


使用管道符注意的要点: - 只能处理前一个命令的正确输出,不能处理错误输出(在)


- 右边命令必须能够处理标准输入流,否则数据在传递过程中会被抛弃(在下图中,echo 指令不能接收输入,因此不能用于管道符之后)


- 可以用在管道符后面接收标准输入的命令有:sed、awk、grep、cur、head、top、less、more、wc、join、sort、split。 # grep grep 全称是 Global Regular Expression Print

  • grep 可以在文件里查询对应字符串所出现的行,第一个参数表示要查找的内容(需要用引号括起来),第二个参数表示文件名(在哪个文件查找),其中文件名默认支持正则表达式。


    在上图的 nginx 的 access.log 日志中,想要筛选出使用 Windows 系统的行,可以使用grep "Windows" access.log


  • 可以通过 -o 选项 选出符合正则表达式的内容。如果想在 nginx 的 access.log 日志里面选出所有的访问时间,如下图。

    那么可以使用grep -o "\[[a-zA-Z0-9/:+ ]*\]" access.log,其中[]在正则表达式中需要使用\[\]转义,[a-zA-Z0-9/:+ ]*表示大小写字母和/:+字符出现 0 次或者多次。

  • 使用 -v 选项过滤包含相关字符串的内容 在使用ps -ef | grep "nginx" 查看特定进程的时候,由于ps -ef | grep "nginx"本身也会被认为是一个进程列出来。因此可以再使用管道符和 grep -v 过滤掉本次命令。

ps -ef | grep "nginx" | grep -v "grep"

评论