【发布时间】:2021-04-17 14:52:40
【问题描述】:
我正在尝试为 bash shell 编写脚本。我有 4 个参数:
- 目录路径
- 文件的扩展名
- 一句话
- 一个数字
我必须查找路径的子目录的所有文件和文件,以查找具有给定扩展名的文件。然后,在文件中查找与给定单词匹配的行,但前提是该行中的单词数量大于或等于提供的数量。
例如:
如果localDirectory 有:image.png script.sh text.txt。
而text.txt 有:
This is a text file
It contains many words
This is an example for a simple text file
然后给出命令:./example.sh localDirectory txt text 7
我应该输出:This is an example for a simple text file。
目前,我的脚本如下所示:
if [ "$#" -ne 4 ];
then
echo "Not enough parameters"
exit 1
fi
find $1 -name "*.$2" -exec grep -wi $3 {} \;
对于前 3 个目标,它工作得很好,我只是不知道现在如何过滤结果,使得该行的单词数大于或等于 $4。
我当然可以创建一个新文件并在那里输出,然后从中读取并仅打印相关行,但我宁愿这样做而不创建新文件。
我对 shell 脚本很陌生。
有什么想法吗?
【问题讨论】: