尝试执行脚本来搜索文件中的用户输入

亚瑟

我正在尝试学习 Bash 脚本,并做一些练习。

现在正在尝试创建搜索名称并从文件中获取记录的脚本。文件内容是这样的:Name:Phone:Email示例:John Doe:123456789:[email protected]但是我创建了一个函数

names=$(awk '{print $1}' $HOME/name_list.txt)

name_list()
{
for i in $names; do
    if [ "$i" == "$name" ];then  #name is user input from scriptfile.
        echo $names | grep -o $i | wc -l | tr "\n" " ";echo "person found" 
    else
        echo "Couldn't find anyone with given name"
    fi
done
}

我感到困扰的是,我的if状况会为文件中的每个“i”生成“找到的人”输出。同样,else条件为每个不匹配的“i”生成输出。我可以理解为什么它会这样工作,但我找不到其他方法。我希望我的脚本扫描所有文件,并且只为总匹配生成 1 个输出,如果没有匹配则只生成 1 个输出。

朱拉尼尔·桑托斯

假设您只想显示“未找到”消息一次.....您可以尝试这样的事情:

names=$(awk -F'[:]' '{print $1}' name_list.txt)
IFS=$'\n'
name=$1
found=0

name_list(){
for i in $names; do
    if [ "$i" == "$name" ];then  #name is user input from scriptfile.
      echo "person found at line $(grep -n $name name_list.txt | cut -d: -f1)"
      found=1
      break
    fi
done

if [ $found == 0 ]
then
    echo "Couldn't find anyone with given name"
fi
}

我只在 AWS 行 + IFS=$'\n'中添加了-F'[:] ' 。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试执行脚本的访问日志中的Apache随机IP

从php文件执行脚本

在Python中,编写一个脚本来确定用户输入的数字是否为质数

innosetup创建的可执行文件中的“执行脚本失败”错误

输入Shiny App输入后执行脚本

当某些类型的用户执行脚本时,如何忽略Oracle pl / sql中的编译错误

在终端中执行脚本

文件更改时执行脚本/程序

从文件或用户输入中调用的脚本

在zsh中执行脚本-文件权限

需要批处理脚本来搜索和复制网络驱动器中的特定文件

需要自动化脚本来搜索XML文件中的HEX并将其替换为DEC

如何获得一个Perl脚本来执行文本文件中的命令?

在folder1中搜索文件,如果该文件不在folder2中,则执行脚本

如何以root用户身份执行脚本,以特定用户身份执行脚本中的某些命令,以root用户身份执行一个命令

使用Heredoc执行脚本时,可以从文件中断中很好地执行脚本(在PHPmyadmin安装中)

BabylonJS从外部文件执行脚本

是否可以创建一个cmd脚本来阻止用户删除桌面中的文件?

在执行脚本之前要求用户确认?

如何基于文件执行脚本

如何编写脚本来缩进输入文件中的行,具体取决于括号的嵌套深度?

bash中的脚本来扫描文件夹以移动docker文件并执行

在vRealize Automation 7.2中的不同用户上下文下执行脚本

在bash中,使用标准输入执行脚本时,如何自动输入值?

打开文件列表并执行脚本

我的主要 Python 应用程序如何在子包中运行脚本来读取子包中的文件

运行脚本的可执行文件的路径可能因用户而异

执行脚本以在文件中观看

如何编写一个 bash 脚本来读取用户的输入然后写入文件