Bash 正在从文件中提取第二个元素?

Bash 正在从文件中提取第二个元素?,bash,ksh,Bash,Ksh,这是my table.txt的外观: name text test123 rock test345 cena 我将在a.sh文件中使用表信息,如下所示: e = 345 echo "the value of e is $e" a=$(awk -v str=test '$2 ~ "^" $e { print $2 ; exit;}' /desktop/table.txt) if [ -z "$a" ] then echo "string not found:

这是my table.txt的外观:

name        text
test123     rock
test345     cena
我将在a.sh文件中使用表信息,如下所示:

e = 345
echo "the value of e is $e"
a=$(awk -v str=test '$2 ~ "^" $e { print $2 ; exit;}' /desktop/table.txt)
if [ -z "$a" ]
   then echo "string not found: $arr"
   else echo "String found: $arr"
fi
预期产出cena

如何:当它转到arr->test345并将打印出第二个元素,即cena时

错误: 未找到字符串:

请帮忙


谢谢

您想写以下内容:

awk -v regex="^test$e" '$1 ~ regex { print $2 ; exit;}'
  • 在awk主体外部构造正则表达式
  • 与1美元相比,不是2美元
是否要执行字符串相等性测试而不是正则表达式匹配

awk -v str="test$e" '$1 == str { print $2 ; exit;}'

谢谢你,这正是我所需要的。黄金:)