2017-08-08 62 views
1

所以我有很多音樂項目組織在自己的文件夾中。每個項目都有一個文件,album.inf。有些項目擁有自己的文件夾,有些項目位於其他項目中的其他項目等等,每個項目都有自己的album.inf。我想解析每個album.inf文件中的一些信息,但我需要從最深層次的文件開始。如何從「最深」版本開始列出每個album.inf文件?這可能沒有寫一個冗長的腳本或函數?執行此操作的最佳方法是什麼?無數文件夾中的相同文件的副本...如何找到最深的副本?

+0

歡迎來到SO!看看這篇文章如何問一個更有可能回答的問題:https://stackoverflow.com/help/how-to-ask –

+0

'find。 -depth -name album.inf -print'? – twalberg

+0

經過一些測試,這似乎應該工作。我可以澄清一下,我從'album.inf'的最深迭代開始並不重要,但是每個迭代的目錄沒有其中存在另一個'album.inf'的子目錄。那有意義嗎?在那種情況下,我認爲這完全是正確的解決方案。謝謝! – Johnny

回答

2

使用findsort你可以得到文件的一個很好的列表,遍歷:

find . -name "album.inf" -printf '%d %p\n' | sort -rn 

隨着printf%d是「深度」和%p令牌文件名令牌,這只是通過管道輸送到排序給你的名單排序數字降序

+0

如果你使用GNU'find'和'sort',你可以使所有文件名都安全,包括那些包含換行'printf'%d %p \ 0'| sort -rnz'。 –