将 .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
我有一个 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