首页 > 解决方案 > 如何从 txt 文件中查找字符串并将其存储在 BASH 中的变量中

问题描述

要求是从 txt 文件中找到一个字符串并将其存储到变量中。

文件看起来像这样(rsa.txt)

Encrypting String
... Input string        : Test_123
... Encrypted string    : $ENC(JEVOQyhZbVpkQmM0L3ArT2c4M05TZks5TmxRPT1+KQ==)

所需输出(变量名:encstring):

encstring = $ENC(JEVOQyhZbVpkQmM0L3ArT2c4M05TZks5TmxRPT1+KQ==)

我尝试了下面的代码,但没有显示结果

encstring=$(grep -oE '$ENC[^()]*==)' <<< rsa.txt)

标签: bashshellgrep

解决方案


awk,请您尝试关注。简单地说,搜索字符串/Encrypted string和一个条件,以检查该行的最后一个字段是否包含$ENC在其中,然后使用$NF.

encstring=$(awk '/Encrypted string/ && $NF~/\$ENC/{print $NF}'

推荐阅读