Unix:在位于不同路径的文件中搜索单词
我的要求是搜索日志并找到一些特定的条目。 日志文件位于两条不同的路径。 我想在两者中进行搜索。
通常我登录到服务器,转到路径并执行grep -i word * filename *
我想准备一个脚本,它将接受用户输入的单词和文件名并进行搜索。
您可以根据需要搜索尽可能多的路径:
grep -i "word" *filename* /some/other/path/*filename*
像这样的东西应该有所帮助
#!/bin/sh
#Purpose: To find a given text in a file
if [ -z "$3" ]
then
echo Usage: $0 DirectoryToSearchIn testToSearch filePattern
exit 1
fi
find $1 -name '$3' | while read f
do
cat "$f" | grep "$3" && echo "[in $f]"
done
使用find
和grep
你可以在多个目录中执行它(不知道目录名称)
find /path/to/files -type f -name '*filename*' -exec grep -i word /dev/null {} ;
这个例子找到包含文件名的文件(但可以是任何东西)。 我还添加了一个示例路径,但可以使用.
以便在当前目录中开始搜索。 -type f
返回文件(不是目录)。
或者你可以使用递归grep,正如这里指出的那样。
grep -rnw 'directory' -e "*filename*"
链接地址: http://www.djcxy.com/p/13679.html
上一篇: Unix: Searching for a word in files situated at different paths