簡體   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