Grep 如何提取行中的数字(包括科学符号)
我有一个包含以下数据的txt文件: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命令只提取数字并将其写入另一个文件 此
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
然后使用额外的命令来获取数据