Bash 从命令行接受字符串并显示包含该字符串的文件列表的Shell脚本
如何编写一个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”,并使用第一个参数=要查找的字符串,第二个参数=要查找的目录来运
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”***
@user2115365myscript“searchstring”/tmp
将列出/tmp中的所有文件(和子目录)包含“searchstring”