2016-06-17 63 views
-3

我有以下溫度數據需要操作。想過使用sed在數據之間插入一個空格,但數據不斷變化。匹配特定圖案後在數字之間插入空格

76 75 75 77 80 84 87 91 94 97100101101102101 97 92 89 86 84 82 81 79 78 77 

我需要它看起來像這樣:

76 75 75 77 80 84 87 91 94 97 100 101 101 102 101 97 92 89 86 84 82 81 79 78 77 

現在,我使用下面的代碼分析出的最高值(其中數字集羣在一起):

grep -Eo '[0-9]' .../temp.txt | sort -rn | head -n 1 
+4

你怎麼知道一個數字在哪裏開始或結束...... – 123

+0

你能否詳細說明一下? –

回答

4

首先要做的是修改生成數據的任何內容,以便以更寬的字段寬度輸出數據。

如果這是不可能的,那麼下面會去裂傷輸出:

$ sed 's/\([ 1-9][0-9][0-9]\)/ \1/g' data | tr -s ' ' 
76 75 75 77 80 84 87 91 94 97 100 101 101 102 101 97 92 89 86 84 82 81 79 78 77 

我把tr末剛剛在輸出sed(所有兩位數產生去除連續的空格整數,除了第一個,在這種情況下,不與正則表達式匹配)。

但實際上,數據的生成器將需要更新。

+0

這是'tr -s'''的巧妙用法! – fedorqui

相關問題