2013-04-23 109 views
0

我比較兩個目錄有:Shell腳本-directory compare-輸出

diff --brief -s dir1/ dir2/ 

這工作正常,我得到了以下的輸出:

Only in dir1/: test1 
Files dir1/test2 and dir2/test2 differ 
Only in dir2/: test3 
Files dir1/test4 and dir2/test4 are identical 

是否有可能獲得所列出的輸出文件test1 ... test4像ls -l dir1/呢?

+0

你能解釋一點點你正在試圖做什麼嗎?這個問題很難理解 – hek2mgl 2013-04-23 17:22:29

+0

我的理解是:你有一個文件列表(從你的差異或任何地方)並調用'ls -l'。究竟是什麼問題? – 2013-04-23 17:28:57

+0

對不起,描述不對。修復它並添加更多信息。 – wes 2013-04-23 18:17:03

回答

0

您可以創建一個awk腳本來爲你做它,就像

diff --brief -s dir1/ dir2/ | awk ' 
    /^Only in/ { system("ls -l " gensub(":$","","1",$3) $4) } 
    /^Files/ { system("ls -l " $2 " " $4) }' 

但是,給出相同的結果(以錯誤的順序)爲ls -l dir1/ dir2/ ...(因爲差異輸出,在每個文件。所以,你可能(並告訴我們你還有什麼要試試...)