Linux中使用grep命令搜索文件名及文件内容的方法

发布网友 发布时间:2022-04-19 18:26

我来回答

1个回答

热心网友 时间:2022-05-03 21:42

  从文件中搜索并显示文件名
  当你从不止一个的文件中搜索时,默认它将显示文件名:
  代码如下:
  grep
word
文件名
  grep
root
/etc/*
  示例输出:
  代码如下:
  /etc/bash.bashrc:
See
man
sudo_root
for
details.
  /etc/crontab:17
*
*
*
*
root
cd
/
run-parts
--report
/etc/cron.hourly
  /etc/crontab:25
6
*
*
*
root
test
-x
/usr/sbin/anacron
||
(
cd
/
run-parts
--report
/etc/cron.daily
)
  /etc/crontab:47
6
*
*
7
root
test
-x
/usr/sbin/anacron
||
(
cd
/
run-parts
--report
/etc/cron.weekly
)
  /etc/group:root:x:0:
  grep:
/etc/gshadow:
Permission
denied
  /etc/logrotate.conf:
create
0664
root
utmp
  /etc/logrotate.conf:
create
0660
root
utmp
  每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用
-l
选项可以只显示文件名:
  代码如下:
  grep
-l
string
filename
  grep
-l
root
/etc/*
  示例输出:
  代码如下:
  /etc/aliases
  /etc/arpwatch.conf
  grep:
/etc/at.deny:
Permission
denied
  /etc/bash.bashrc
  /etc/bash_completion
  /etc/ca-certificates.conf
  /etc/crontab
  /etc/group
  你也可以逆转输出;使用
-L
选项来输出那些不匹配的文件的文件名:
  代码如下:
  grep
-L
word
filename
  grep
-L
root
/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.c
FILE.c
FILE.C)的大小写。
  -R

递归读取每个目录下的所有文件。
  高亮匹配到的模式
  在搜索大量文件的时候你可以轻松地高亮模式:
  代码如下:
  $
grep
--color=auto
-iR
'getChar();'
*.c
  为查找到的模式显示文件名和行号
  你也许需要显示文件名和行号:
  代码如下:
  $
grep
--color=auto
-iRnH
'getChar();'
*.c
  其中,
  -n

在输出的每行前面添加以
1
开始的行号。
  -H

为每个匹配打印文件名。要搜索多个文件时这是默认选项。(LCTT
译注:-h
选项强制隐藏文件名;另外
-l

-L
选项用于仅显示匹配/不匹配的文件名,而
-H

-h用于控制在显示匹配行前显示/不显示文件名,注意区分。)
  代码如下:
  $grep
--color=auto
-nH
'DIR'
*
  输出样例:
  你也可以使用
find
命令:
  代码如下:
  $
find
.
-name
*.c
-print
|
xargs
grep
main(
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com