我正在尝试学习一些bash脚本编写和清理一些旧CD(还记得吗?)
我所拥有的是一堆没有押韵或理由的备份CD,因此我想创建一个基于关键字搜索它们的grep脚本。 (我目前正在尝试首先针对桌面测试脚本)我知道如何运行grep,但它的脚本我遇到了麻烦。
所以这就是我所拥有的:
#!/bin/bash
#CDGrepScript
SOURCEDIR=/home/name/Desktop (I'm currently testing it with files on the desktop)
#mount /dev/cdrom
#SOURCEDIR=/dev/cdrom
echo "hello, $USER. I will search your files"
echo Begin Search...
grep -ir "taxes|personal|School" *
echo $results
echo "The search is complete. Goodbye"
exit
现在,当我对桌面上的文件运行时。我的脚本在“开始搜索”之后挂起我做错了什么?
感谢您的帮助
答案 0 :(得分:1)
通过更通用的工具,您可能会得到更好的服务。就像rgrep(递归grep)一样,它将遍历一棵树,搜索一个搜索词。一个例子:
# rgrep
#
# Search for text strings in a directory hierarchy
set +x
case $# in
0 | 1 )
# Not enough arguments -- give help message
echo "Usage: $0 search_text pathname..." >&2
exit 1
;;
* )
# Use the first argument as a search string
search_text=$1
shift
# Use the remaining argument(s) as path name(s)
find "$@" -type f -print |
while read pathname
do
egrep -i "$search_text" $pathname /dev/null
done
;;
esac
将它放在您的路径中,然后您只需将目录更改为CD-ROM的安装点,然后键入
$ rgrep "taxes" .
或者您希望执行的任何其他搜索。