2015-02-17 30 views
0

我正在MATLAB中運行一個作業數組,它本質上是兩個嵌套的FOR循環,但同時跨越60個節點(即60個日誌文件)。我希望能夠同時獲得所有工作的狀態。 每個日誌文件輸出外部循環的「index1 = 1 of 100」,以及「index2 = 1 of X」,其中X是可變的,有時是100,有時是60,000。我想知道的是index1的狀態。grep最近輸入多個日誌文件

> grep index1 *.out 

轉儲所有日誌文件中的所有內容。

> tail -n 100 | grep index1 *.out 

是更好,但如果X是很大的,它得到什麼,如果X是小得太多輸出。什麼,我覺得 僞代碼,我需要:

    在所有文件(保持文件名以某種方式)
  1. 每個文件的最後一項只保留
  2. 輸出到標準輸出或文件
  3. grep的索引1

注意:我編寫了MATLAB代碼,以便我可以更改日誌文件條目的結構/外觀以使其更容易。

+0

如果每個日誌的每一行有索引1和索引2寫就可以了,然後簡單的尾巴-5 * .out |排序|尾巴會給你你想要的。 – 2015-02-17 22:15:55

+0

吉姆 - 看起來它也可以工作,但工作正在運行,並且需要幾天時間。當我下次編輯我的日誌條目時,我會嘗試它。 – 2015-02-18 22:42:20

回答

0

如果你想現在數名嘗試:

for file in *.out; do grep -H index1 $file | tail -n 1; done 

,或者如果你沒有必要:

for file in *.out; do grep index1 $file | tail -n 1; done