从文件中搜索并显示文件名
当你从不止一个的文件中搜索时linux查找文件名命令,默认它将显示文件名:
代码如下:
grep”word”文件名
greproot/etc/*
示例输出:
代码如下:
/etc/bash.bashrc:See”mansudo_root”fordetails.
/etc/crontab:17****rootcd/&&run-parts--report/etc/cron.hourly
/etc/crontab:256***roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.daily)
/etc/crontab:476**7roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.weekly)
/etc/crontab:5261**roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.monthly)
/etc/group:root:x:0:
grep:/etc/gshadow:Permissiondenied
/etc/logrotate.conf:create0664rootutmp
/etc/logrotate.conf:create0660rootutmp
每行开始的第一个部份是文件名(如:/etc/crontab、/etc/group)。使用-l选项可以只显示文件名:
代码如下:
grep-l”string”filename
grep-lroot/etc/*
示例输出:
代码如下:
/etc/aliases
/etc/arpwatch.conf
grep:/etc/at.deny:Permissiondenied
/etc/bash.bashrc
/etc/bash_completion
/etc/ca-certificates.conf
/etc/crontab
/etc/group
你也可以逆转输出;使用-L选项来输出这些不匹配的文件的文件名:
代码如下:
grep-L”word”filename
grep-Lroot/etc/*
示例输出:
代码如下:
/etc/apm
/etc/apparmor
/etc/apparmor.d
/etc/apport
/etc/apt
/etc/avahi
/etc/bash_completion.d
/etc/bindresvport.blacklist
/etc/blkid.conf
/etc/bluetooth
/etc/bogofilter.cf
/etc/bonobo-activation
/etc/brlapi.key
依照文件内容查找文件
输入以下命令:
代码如下:
grep’string’*.txt
grep’main(‘*.c
grep’#include’*.c
grep’getChar*’*.c
grep-i’ultra’*.conf
grep-iR’ultra’*.conf
其中
-i:忽视模式(匹配字符串valid、VALID、ValID)和输入文件(匹配file.cFILE.cFILE.C)的大小写。
-R:递归读取每位目录下的所有文件。
高亮匹配到的模式
在搜索大量文件的时侯你可以轻松地高亮模式:
代码如下:
$grep--color=auto-iR’getChar();’*.c
为查找到的模式显示文件名和行号
你或许须要显示文件名和行号:
代码如下:
$grep--color=auto-iRnH’getChar();’*.c
其中虚拟主机 linuxlinux教程,
-n:在输出的每行后面添加以1开始的行号。
-H:为每位匹配复印文件名。要搜索多个文件时这是默认选项。(LCTT评注:-h选项强制隐藏文件名;另外-l和-L选项用于仅显示匹配/不匹配的文件名linux查找文件名命令,而-H和-h用于控制在显示匹配行前显示/不显示文件名,注意分辨。)
代码如下:
$grep--color=auto-nH’DIR’*
输出样例:
你也可以使用find命令:
代码如下:
$find.-name”*.c”-print|xargsgrep”main(“