Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用grep命令查找包含文本的文件以文件名charector开头_Linux_Unix_Putty - Fatal编程技术网

Linux 使用grep命令查找包含文本的文件以文件名charector开头

Linux 使用grep命令查找包含文本的文件以文件名charector开头,linux,unix,putty,Linux,Unix,Putty,我想找到包含一些文本的文件,但应该以一些字符开头 grep -inr "my text" . 上述命令将显示包含上述文本的所有文件。但是我想要的是,如果文件包含一个文本,并且名称应该以like E*开头,那么您可以将find和grep组合起来: find . -name "E*" | xargs grep -nH "my text" 您还可以使用findsexec参数代替xargs。查看一下它的管理人员:manfind您可以将find和grep组合起来: find . -name "E*"

我想找到包含一些文本的文件,但应该以一些字符开头

grep -inr "my text" . 

上述命令将显示包含上述文本的所有文件。但是我想要的是,如果文件包含一个文本,并且名称应该以like E*

开头,那么您可以将
find
grep
组合起来:

find . -name "E*" | xargs grep -nH "my text"

您还可以使用
find
s
exec
参数代替
xargs
。查看一下它的管理人员:
manfind

您可以将
find
grep
组合起来:

find . -name "E*" | xargs grep -nH "my text"
您还可以使用
find
s
exec
参数代替
xargs
。看看它的管理人员:
manfind

你可以用这个

find . -name 'E*' -exec grep -Hl "sample" {} \;
说明:

-H
:打印每个匹配的文件名

-l
:抑制正常输出

您可以使用

find . -name 'E*' -exec grep -Hl "sample" {} \;
说明:

-H
:打印每个匹配的文件名


-l
:抑制正常输出

如果您想要一层的最大深度,那么我认为最有效的方法是

grep <pattern> E*
grep E*
对于多个级别,您可以这样使用

grep <pattern> */*/E*
grep*/*/E*

如果您想要一层的最大深度,那么我认为最有效的方法是

grep <pattern> E*
grep E*
对于多个级别,您可以这样使用

grep <pattern> */*/E*
grep*/*/E*

你是指以
E
开头的文件名或以
E
开头的行?文件名以'E'开头?你是指以
E
开头的文件名或以
E
开头的行?文件名以'E'开头这是一个非常不可靠的解决方案:1)解析
ls
的输出他非常气馁。(事实上,该命令在我的计算机上失败得很惨。)2)这对带有空格的文件名不起作用。在我的计算机上有效很好……+据我所知,你不能用空格创建文件名。
ls
s输出的格式取决于区域设置,这就是为什么它可以在一台机器上工作,而不能在另一台机器上工作的原因,这也是为什么它不是一个好主意。你不能用空格来创建文件名,这是荒谬的;这是可能的,甚至是非常普遍的。改变了它,为什么要用ls呢。。可以使用空格创建文件名。我才知道这件事。谢谢:)。上面的命令适用于它……这是一个非常不可靠的解决方案:1)解析
ls
s输出是非常不受鼓励的。(事实上,该命令在我的计算机上失败得很惨。)2)这对带有空格的文件名不起作用。在我的计算机上有效很好……+据我所知,你不能用空格创建文件名。
ls
s输出的格式取决于区域设置,这就是为什么它可以在一台机器上工作,而不能在另一台机器上工作的原因,这也是为什么它不是一个好主意。你不能用空格来创建文件名,这是荒谬的;这是可能的,甚至是非常普遍的。改变了它,为什么要用ls呢。。可以使用空格创建文件名。我才知道这件事。谢谢:)。上面的命令适用于它。。。。