Grep 如何提取行中的数字(包括科学符号)

Grep 如何提取行中的数字(包括科学符号),grep,Grep,我有一个包含以下数据的txt文件: Time = `number`6e-05 Time = `number`6.16667e-05 Time = `number`6.25581e-05 Time = `number`6.35182e-05 Time = `number`6.45605e-05 Time = `number`6.57037e-05 Time = `number`6.6974e-05 ... 该文件包含大约13000行 是否有grep命令只提取数字并将其写入另一个文件 此

我有一个包含以下数据的txt文件:

Time = `number`6e-05
Time = `number`6.16667e-05 
Time = `number`6.25581e-05 
Time = `number`6.35182e-05 
Time = `number`6.45605e-05 
Time = `number`6.57037e-05 
Time = `number`6.6974e-05
...
该文件包含大约13000行

是否有grep命令只提取数字并将其写入另一个文件


此文件是使用另一个大文件的grep命令生成的。

如果文件是
nums.txt
,则:

$ egrep -o "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?." nums.txt > other.file
$ cat other.file
6e-05
6.16667e-05
6.25581e-05
6.35182e-05
6.45605e-05
6.57037e-05
6.6974e-05
$ awk -F "\`" '{print $3}' data.txt > result.txt
$ cat result.txt
6e-05
6.16667e-05 
6.25581e-05 
6.35182e-05 
6.45605e-05 
6.57037e-05 
6.6974e-05

应该可以工作。

假设原始文件名为
data.txt
,然后:

$ egrep -o "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?." nums.txt > other.file
$ cat other.file
6e-05
6.16667e-05
6.25581e-05
6.35182e-05
6.45605e-05
6.57037e-05
6.6974e-05
$ awk -F "\`" '{print $3}' data.txt > result.txt
$ cat result.txt
6e-05
6.16667e-05 
6.25581e-05 
6.35182e-05 
6.45605e-05 
6.57037e-05 
6.6974e-05
如果要获取问题中标记为
number
的标签值,只需将编号
3
更改为
2
即可。像这样:

awk -F "\`" '{print $2}' data.txt > result.txt
您可以这样做:

awk -F\` '$0=$NF' old >new
6e-05
6.16667e-05
6.25581e-05
6.35182e-05
6.45605e-05
6.57037e-05
6.6974e-05

给我们提供
grep
命令和原始数据文件。无需先
grep
然后使用额外的命令来获取数据