2012-07-30 43 views
1

我是新手腳本並且有一些問題。這是路徑書寫腳本

c:/data/flow/gen/value/foo.txt 
c:/data/flow/gen/secondvalue/cat.txt 
c:/data/flow/gen/thirdvalue/bar.txt 

我必須編寫一個腳本來獲取文件夾gen中的所有.txt文件。

我正在寫這樣的東西。

find - path c:/*/gen/* -name "*.txt" | cat >> output.txt 

但我沒有得到輸出文件中的文件名。有人可以幫我弄這個嗎。 我只知道「gen」文件夾名稱及其路徑對我來說是隱藏的。所以我必須寫一個腳本相應

+0

你得到了什麼* – 2012-07-30 17:26:33

+0

只是一個空文件 – 2012-07-30 17:29:07

+0

真的嗎?因爲你*應該*得到一個錯誤信息... – 2012-07-30 17:29:35

回答

0

試試這個:

find directory -name "*.txt" -print -exec cat '{}' \; > output.txt 

-print    # prints the filename 
-exec cat '{}'  # cats the file 
> output.txt  # puts it all into output.txt 

你有你想要搜索的目錄替換目錄。 這將在Linux shell中工作,但不在Windows中。

如果您使用Windows,請嘗試使用「查找文件和文件夾」功能。

+0

這樣做,但它仍然顯示一個空文件。 Nd還有一件事我不知道gen的確切位置也..因此它應該是像c:/ */gen/* / – 2012-07-30 17:43:48

0

在你的-path之前添加一個或多個目錄。

刪除 - 和path之間的空格,所以它讀取「-path」。

在「* .txt」(以空格分隔)之後添加可移植性的-print。

這是一個「無用的貓」 - 你的find命令可以做追加 - 它更簡單,速度更快。

這是cygwin嗎?

可能需要\逃脫你的c:\ - 冒號絕對是一個內置的shell,但我不確定這是否會在這種情況下。