我對bash腳本非常陌生。 我有一個網絡跟蹤文件,我想解析。跟蹤文件的一部分是(兩個包):如何獲得grep的每條輸出行的長度
[continues...]
+---------+---------------+----------+
05:00:00,727,744 ETHER
|0
|00|03|a0|09|5c|1c|00|10|07|df|a4|20|08|00|45|00|00|38|e7|55|
+---------+---------------+----------+
05:00:00,727,751 ETHER
|0
|00|03|a0|09|5c|1c|00|10|07|df|a4|20|08|00|45|00|00|38|e7|56|00|00|3a|01|
[continues...]
對於每個數據包,我想打印時間戳和數據包的長度(十六進制值即將在下一行之後| 0頭)所以輸出如下:
05:00:00.727744 20 bytes
05:00:00.727751 24 bytes
我可以用時間標記線和在bash分別用grep包:
times=$(grep '..\:..\:' $fileName)
packets=$(grep '..|..|' $fileName)
但我不能與單獨的輸出線工作後,那。整個結果連接在兩個變量「時間」和「數據包」中。我怎樣才能得到每個數據包的長度?
P.S.一個很好的參考,真正解釋如何做bash編程,而不僅僅是做例子,將不勝感激。
您是如何創建網絡跟蹤的?首先直接輸出所需的值通常要容易得多,而不是寫一些詳細的文本,並在稍後嘗試解析。 – michas 2015-02-06 17:27:09
@rici,謝謝你的觀點。固定 – Shervin 2015-02-06 17:31:30
@michas,我下載了它。並沒有自己產生。 – Shervin 2015-02-06 17:32:40