grep:在日志中查找有效条目

grep:在日志中查找有效条目,grep,Grep,大家好,我对这个脚本有意见。我刚刚开始编写它,它应该查找以前由我编写的另一个脚本生成的条目 要点是日志中有如下条目: makefile_1786878:/home/user/project 格式为filename\u inode:/originaldirectory/ 这个脚本应该获取一个参数,并在日志中查找它的精确匹配项 if [ $# -eq 0 ] then echo "No filename has been provided.

大家好,我对这个脚本有意见。我刚刚开始编写它,它应该查找以前由我编写的另一个脚本生成的条目

要点是日志中有如下条目:

makefile_1786878:/home/user/project 
格式为filename\u inode:/originaldirectory/

这个脚本应该获取一个参数,并在日志中查找它的精确匹配项

    if [ $# -eq 0 ]
        then
                echo "No filename has been provided. Please enter a filename to restore!"
                exit 1
fi
echo You have entered $1
echo Looking for $1 in the list of items deleted by safe_rm...
restoredfile=$(grep ^$1 $HOME/.restore.info)
echo $restoredfile
我遇到的问题是,如果用户输入“mak”或“make”或“makefi”作为参数,它将错误地查找此条目


我想让它与此完全匹配,我不知道如何强制grep这样做

grep -w "makefile"

grep "\<makefile\>"
grep-w“makefile”
格雷普“\”
如果成功,只需将您的grep更改为:
grep其中包含$1参数的任何一个。

不幸的是,这不起作用。这两项都没有产生结果。条目没有空格分隔,我认为需要巧妙地使用正则表达式来匹配日志的格式。如果用户输入部分路径名而不是文件名本身,我也不希望grep错误地拉出一个正匹配?如果awk足够的话。。。您可以使用以下命令:awk-F_'$1==“makefile”'$HOME/.restore.info如果可以,那么您可以使用^$1替换makefile。我得掸掉格雷普的书上的灰尘才能弄清楚那本书。但我以前做过grep搜索。我就是记不清了。缺点是,如果文件名中有下划线,它将只搜索前半部分。