gpt4 book ai didi

linux - 将 grep 传递给 bash 中的变量

转载 作者:IT王子 更新时间:2023-10-29 00:03:05 27 4
gpt4 key购买 nike

我有一个名为 email.txt 的文件,如下所示:

Subject:My test
From:my email <myemail@gmail.com>

this is third test

我想通过使用 bash 脚本只取出这个文件中的电子邮件地址。所以我把这个脚本放在我名为 myscript 的 bash 脚本中:

#!/bin/bash

file=$(myscript)

var1=$(awk 'NR==2' $file)

var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'))

echo $var2

但是我没有运行这个脚本。当我在 bash 中手动运行这个命令时,我可以获得电子邮件地址:

echo $var1 | grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'

我需要将电子邮件地址存储在一个变量中,以便我可以在其他函数中使用它。有人可以告诉我如何解决这个问题吗?谢谢。

最佳答案

我认为这是一种过于复杂的处理方式,但如果您只想让脚本正常工作,请尝试以下操作:

#!/bin/bash

file="email.txt"

var1=$(awk 'NR==2' $file)

var2=$(echo "$var1" | grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b')

echo $var2

我不确定 file=$(myscript) 应该做什么,但是在下一行你想要一个文件名作为 awk 的参数,所以您应该将 email.txt 作为字符串值分配给 file,而不是执行名为 myscript 的命令。 $var1 不是一个命令(它只是文本文件中的一行),所以你必须 echo 它给 grep 任何有用的东西跟...共事。 grep 周围的附加括号是多余的。

关于linux - 将 grep 传递给 bash 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992814/

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