2013-05-03 118 views
1

我有一個很長的命令運行在一個非常大的文件。它涉及單個命令中的sort,uniq,grep和awk命令,它們將一個命令的結果管理到另一個命令。unix中運行命令的進度

一旦我發出該命令執行,命令提示符不會返回,直到命令完全執行。

有沒有一種方法可以知道命令的執行過程有多少,或者是否有類似的東西,讓我們知道這個主命令中的特定命令已經完成了多少?

+1

實際上,沒有 - 沒有簡單的方法來衡量命令管道的進度,如您所描述的。這種排序可能是運行時間最長的階段;你可以通過它創建的臨時文件以某種方式監視它,但這並不是一個定局。這是一個普遍問題;沒有簡單的方法來衡量大多數命令的進度。 – 2013-05-03 04:51:47

+0

@Gabe:您能否提供更多關於Perl在這種情況下能夠做什麼的洞察? – 2013-05-03 04:59:14

+0

您可以在其他終端中使用'tail -f'來查看某些輸出文件的演變。 – 2013-05-03 05:51:25

回答

-1

Perl最初創建是因爲AWK對於手頭的任務來說不夠強大。使用類似於sortgrep的命令以及與AWK非常相似的語法,使用這些程序將命令行轉換爲簡短的Perl腳本不應該很困難。

的Perl的好處是,你可以很容易地通過print語句傳達你的腳本的進度。例如,你可以指示何時做輸入文件被加載,當排序完成,等

+3

雖然我第二次傳福音,但這不是他的問題的答案。 – tink 2013-05-03 05:48:10

+0

@tink:由於這正是我如何解決問題的原因,我認爲這與我可以寫的一樣接近答案,因爲考慮到OP沒有給出他的來源。 – Gabe 2013-05-03 13:02:49

1

不知道你在做什麼,我不能說這是否會爲你工作,但看看pv。它可能適合該法案。