将 .txt 文件的特定内容分配到 bash 变量中

Assign specific content of a .txt file into a bash variable

我有一个 txt 文件,我想从文本文件及其多行中分配一个特定的词。例如,假设文本文件是这句话,值 0.78 是我想要分配的那个。我该怎么做?

我不知道你的上下文是什么,但假设你想匹配文本文件中紧跟在单词 "value" 之后的数字,并且你想在纯 Bash 中进行匹配:

$ [[ $(<yourfile.txt) =~ value\ ([0-9.]*) ]] && echo ${BASH_REMATCH[1]}
0.78

有关详细信息,请参阅 Bash 手册中的 Conditional Constructs

我猜你在找一个数字,所以我会提取任何看起来像数字的东西:

grep -Ewo "[+-]?[0-9]*\.?[0-9]+" file
echo $n

0.78

正则表达式说它可以在开头有一个可选的 +/-,一些可选的数字,一个可选的小数点和一些更多的数字。

如果您只想要带小数点的数字,并且希望它在 bash 变量中,请执行此操作

var=$(grep -Ewo "[+-]?[0-9]*\.[0-9]*" file)
echo $var