2013-05-03 168 views
-1

我有一個結構如下;我係統中的每個用戶都有自己的控制文件作爲目錄。例如:假設用戶名是joe。用戶的控制文件位於目錄j/o/e中。同樣,用戶joey在目錄j/o/e/y下有他的文件。其中一個控制文件被命名爲「files.txt」。目錄遍歷bash shell

我必須編寫一個bash shell腳本,用於查找系統中所有用戶的「files.txt」中包含「.torrent」字符串的行,並輸出用戶名。我不知道該怎麼做。

任何人都可以請幫忙嗎? 在此先感謝。

+1

你到目前爲止試過了什麼?你採取了哪些方法?爲什麼你的目錄是這樣的? – 2013-05-03 16:56:59

+0

這看起來像一個相當不切實際的目錄結構。這是功課嗎? (提示:man find) – Uwe 2013-05-03 16:57:59

回答

0
grep '.torrent' `find /top/level/directory/ -name files.txt` 

將輸出j/o/e/y/files.txt,爲每一位用戶joey已在.torrent他們files.txt容易從獲取用戶名!

+0

我得到了「grep:無效的最大數量」錯誤。有任何想法嗎? – user2117336 2013-05-03 17:09:21

+0

另外,如何修改此代碼以在其執行的目錄下進行搜索? – user2117336 2013-05-03 17:15:15

0

有bash 4?可以試試

cd /top/of/control 
grep -Hm1 '\.torrent' ./**/*.txt 
+0

另外,我該如何修改這個代碼來在它執行的目錄下進行搜索? – user2117336 2013-05-03 17:16:34

+0

這段代碼在所有.txt文件中遞歸搜索'**'的意思是遞歸的... – jm666 2013-05-03 17:29:32