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

时间:2015-02-25 21:31:24

标签: bash variables text terminal

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

2 个答案:

答案 0 :(得分:2)

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

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

0.78

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

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

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

答案 1 :(得分:0)

我不知道你的上下文是什么,但是我们假设你想要匹配文本文件中“value”后面的数字,并且你想在纯Bash中这样做:

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

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