Unix:在位于不同路径的文件中搜索单词

时间:2014-02-18 07:49:18

标签: linux shell unix

我的要求是搜索日志并找到一些特定的条目。日志文件位于两个不同的路径。我想在两者中搜索。

通常我登录服务器,转到路径并执行grep -i word * filename *

我想准备一个脚本,它将接受用户输入的单词和文件名并搜索它。

3 个答案:

答案 0 :(得分:3)

您可以根据需要搜索任意数量的路径:

grep -i "word" *filename* /some/other/path/*filename*

答案 1 :(得分:0)

这样的事情应该有所帮助

#!/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

答案 2 :(得分:0)

使用findgrep,您可以在多个目录上执行此操作(之前不知道目录名称)

find /path/to/files -type f -name '*filename*' -exec grep -i word /dev/null {} \;

此示例查找包含 filename 的文件(但可以是任何内容)。我还添加了一个示例路径,但您可以使用.来启动当前目录中的搜索。 -type f返回文件(不是目录)。

或者你可以使用递归grep,如指出here

grep -rnw 'directory' -e "*filename*"