Linux 如何创建可以扫描文件以查找特定单词的shell脚本?

Linux 如何创建可以扫描文件以查找特定单词的shell脚本?,linux,Linux,在计算机科学GCSE考试中,我要回答的一个问题是: 编写一个shell脚本,接收用户输入的字符串,请求文件名并报告文件中是否存在该字符串 不管我怎么做,我都无法创建shell脚本。 我不需要你告诉我整个数字,但是,我不知道从哪里开始。我输入变量和文件名,但是,我不知道如何在所选文件中搜索所选单词。有什么想法吗?例如,使用grep可以让它工作 viewEntry() { echo "Entering view entry" echo -n "Enter Name: " re

在计算机科学GCSE考试中,我要回答的一个问题是:

编写一个shell脚本,接收用户输入的字符串,请求文件名并报告文件中是否存在该字符串

不管我怎么做,我都无法创建shell脚本。
我不需要你告诉我整个数字,但是,我不知道从哪里开始。我输入变量和文件名,但是,我不知道如何在所选文件中搜索所选单词。有什么想法吗?

例如,使用grep可以让它工作

viewEntry()
{
    echo "Entering view entry"
    echo -n "Enter Name: "
    read input
    if grep -q "$input" datafile
    then
        echo ""
        echo -n "Information -> "
        grep -w "$input" datafile
        echo ""
    else
        echo "/!\Name Not Found/!\\"
    fi
    echo "Exiting view entry"
    echo ""
}
数据文件是您将从中读取的文件。然后利用grep的-q和-w参数,您应该能够浏览您选择的文件


这个网站很好地解释了grep和您的确切问题:

下面的shell脚本是一个非常快速的方法来完成您的建议:

#!/bin/sh                            # Tell your shell with what program this script should be exectued
echo "Please enter the filename: "
read filename                        # read user input into variable filename
count=`grep -c $1 $filename`         # store result of grep into variable count
if [ $count -gt 0 ]                  # check if count is greater than 0
then
  echo "String is present:" $1 
else
  echo "String not found:" $1
fi
您应该了解shell脚本的基本知识。您的任务不是很复杂,因此在阅读一些内容之后,您应该能够理解脚本的作用,并根据需要修改它