Bash 从命令行接受字符串并显示包含该字符串的文件列表的Shell脚本

Bash 从命令行接受字符串并显示包含该字符串的文件列表的Shell脚本,bash,shell,unix,filesystems,Bash,Shell,Unix,Filesystems,如何编写一个shell脚本,从命令行中搜索目录(或子目录)下的文件列表中的给定字符串,并显示包含该字符串的所有文件。如果它提供了所需内容,请尝试以下操作: grep -rl "string" **/* 基本示例: #!/bin/sh STRING=$1 DIR=$2 find $DIR -type f -exec grep -l $STRING {} \; 处理空白等问题留给学生练习 我将脚本命名为“findfile.sh”,并使用第一个参数=要查找的字符串,第二个参数=要查找的目录来运

如何编写一个shell脚本,从命令行中搜索目录(或子目录)下的文件列表中的给定字符串,并显示包含该字符串的所有文件。

如果它提供了所需内容,请尝试以下操作:

grep -rl "string" **/*
基本示例:

#!/bin/sh

STRING=$1
DIR=$2

find $DIR -type f -exec grep -l $STRING {} \;
处理空白等问题留给学生练习

我将脚本命名为“findfile.sh”,并使用第一个参数=要查找的字符串,第二个参数=要查找的目录来运行它。像这样:

[jenny@ryo-ohki:tmp]$ ./findstring.sh lyskom /home/jenny/src/elisp
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/README
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.el
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.elc
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/NEWS-0.48
/home/jenny/src/elisp/lyskom-all-0.48.elc
/home/jenny/src/elisp/lyskom-swedish-0.48.elc
/home/jenny/src/elisp/lyskom.elc

如您所见,它列出了/home/jenny/src/elisp/目录及其子目录中包含单词“lyskom”的每个fil。

此shell脚本显示包含指定字符串的所有文件

#!/bin/bash
grep -l "$1" *
您可以将其保存为find_util.sh并执行以下操作

chmod a+x find_util.sh

./find_util.sh search
如果您希望它搜索子目录,也可以将其更改为

#!/bin/bash
grep -lr "$1" *

你的意见是什么?文件名?还是一堆文字?你想做什么?有问题的是,您是否希望执行递归grep并列出文件名,现在它是否已更改?输入是一个字符串,脚本必须经过文件夹并显示包含该字符串的文件如果您有
s=string
,则
grep-rl“$s”***
@user2115365
myscript“searchstring”/tmp
将列出/tmp中的所有文件(和子目录)包含“searchstring”