繁体   English   中英

用小数位捕获数字

[英]Grepping Numbers With Decimal Places

我试图弄清楚如何grep从包含小数点的数字组成的文件中读取的时间戳,但是我似乎无法获得所需的输出,任何帮助都将非常有用! 提前致谢。

例:

[Time since reference or first frame: 691.933275000 seconds]
[Time since reference or first frame: 691.953127000 seconds]
[Time since reference or first frame: 691.992275000 seconds]
[Time since reference or first frame: 691.997590000 seconds]

结果应为:

691.933275000
691.953127000
691.992275000
691.997590000

我尝试过的

grep '[0-9]\.[0-9]' tmp.txt
grep -Eo '[0-9]\.[0-9]' tmp.txt
grep -Eo '([0-9]{1,10}[\.]){1,10}[0-9]' tmp.txt

您可以使用awk拆分文件以检索具有十进制数字的那些字段

cat file_name | awk '{print $7}'

这是使用Perl可以解决的方法:

perl -lane 'for (@F) {print if /^\d+\.?\d+$/}' file

使用以下命令行选项:

  • -n循环输入文件的每一行,不要自动打印该行

  • -l在处理之前删除换行符,然后再将其重新添加

  • -a自动拆分模式–将输入行拆分为@F数组。 默认为在空白处分割

  • -e执行perl代码

perl代码将每个输入行拆分为@F数组,然后遍历每个字段并决定是否打印它。

正则表达式/^\\d+\\.?\\d+$/用于每个空格分隔的单词

  • ^开头为

  • \\d+一个或多个数字

  • \\.? 零或一。

  • \\d+一个或多个数字

  • $结束

$ cut -d' ' -f7 file
691.933275000
691.953127000
691.992275000
691.997590000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM