2012-02-24 87 views
0

我想創建一個shell腳本來回顯一個文件的內容,我不知道在哪裏可以找到它。shell腳本搜索文件,然後回顯文件的內容

我認爲這將是這樣的:

$echo | ls /* | grep file.xml 

在我的文件可能會在一些不知名的子文件夾,所以我試圖尋找它的使用grep路徑。

正確語法的任何幫助將不勝感激!

回答

5

您可以使用find

find/-name file.xml -exec cat '{}' ';' 

/說,在/及其子目錄看; -name file.xml說找到名爲file.xml的文件;和-exec cat '{}' ';'表示運行,例如,cat /path/to/file.xml爲這些文件中的每一個打印出它們的內容。

0

我想你想貓的文件。請注意,如果有多個匹配項,它將打印所有文件。如果您的權限不足,您可能會收到您需要過濾的權限錯誤。爲了避免,只能在你有權限的目錄上運行,以升級的特權執行或使用grep刪除它們。嘗試:

cat `find/-name file.xml` 
+0

Re:「或使用grep刪除它們」:請注意,權限錯誤消息轉爲標準錯誤,因此,不是以某種方式使用'grep',而是禁止它們的邏輯方式就是'2>/dev/null'。另外,如果'file.xml'的路徑包含任何空格,問號或星號,那麼您的命令將會出錯。 – ruakh 2012-02-24 04:05:07

0

試試這個:

grep -lr "alice in wonderland" * 

這將列出所有包含文本alice in wonderland的文件。如果你要顯示的每個內容,這樣做:

grep -lr "alice in wonderland" *|while read filename; do 
    echo ---- Contents of: "$filename" 
    cat "$filename" 
done