gpt4 book ai didi

Linux:在用户已准备好输入名称的文本文件中搜索字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:59 24 4
gpt4 key购买 nike

您好,我得到了如下所示的字符串,一切正常,但后来我记得我需要添加一个命令,以便用户可以搜索他们想要查看的文件内的字符串。我尝试使用 grep 但我不知道如何很好地使用 grep。我需要用户输入文件名,然后输入字符串位,并且需要报告字符串是否在文件中。我用来测试这个的程序称为 pi 和terminal。如果你能帮忙那就太棒了。预期的结果是它将显示文本文件并告诉您输入的字符串是否在该字符串文件中。

到目前为止,我的代码是这样的,我突出显示了我不知道的部分(grep):

#!/usr/bin/env bash

echo 'Welcome!'

while [ "$response" != "n" ]
do
read -p "Would you like to find a file? [y/n]:" response
case $response in
y) read -p "What is the name of the file? " file
read grep "text string to search” $file
$grep "redeem reward" $file
find . -type f -name "$file" -exec less {} \;
;;

n)
echo "goodbye"
exit ;;
esac
done

最佳答案

    y) read -p "What is the name of the file? " file
read grep "text string to search” $file
$grep "redeem reward" $file
find . -type f -name "$file" -exec less {} \;
;;

这在很多方面都被打破了。

        read grep "text string to search” $file         

为什么grep?为什么读入与文件名相同的变量($file)?哦,当给read一个变量时,不要使用$来取消引用(你在第一行就这样做了......)

正如用户 Biffen 正确评论的那样,第二个引号也不正确。大多数编程语言都非常挑剔,只接受 ASCII 0x22 作为“真正的”引号,因此您应该坚持这一点。

            $grep "redeem reward" $file    

您没有名为 grep变量,因此 $grep 是无意义的。此外,我以为你想 grep 输入的 字符串?

       find . -type f -name "$file" -exec less {} \;

好吧,我想你现在只是感到困惑。

试试这个:

    y) read -p "What is the name of the file: " file
read -p "Text string to search: " text
grep -F "$text" $file
;;

grep-F 选项使用 $text 作为固定字符串而不是模式。如果这不是您想要的,请放弃它。

i don't know how to use grep well.

为此,有 man grep 。在命令行上尝试一下,它就在那里。 (如果您正在寻找 man read,这是 bash shell 的内置命令,因此请使用 man bash 并跳到“SHELL BUILTIN COMMANDS”部分。

关于Linux:在用户已准备好输入名称的文本文件中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26137328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com