[英]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.