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」フォルダ名を知っているだけで、そのパスは私には隠されています。だから私はそれに応じてスクリプトを書かなければなりません

4

2 に答える 2

0

-pathの前に1つ以上のディレクトリを追加します。

-とpathの間のスペースを削除して、「-path」と表示されるようにします。

「*.txt」(スペースで区切る)の後に、移植性のために-printを追加します。

これは「猫の役に立たない使用法」です-あなたのfindコマンドは追加を行うことができます-それはより単純で少し速いです。

これはcygwinですか?

c:\をエスケープする必要があるかもしれません-コロンは間違いなくシェルビルトインですが、この場合それが問題になるかどうかはわかりません。

于 2012-07-30T20:15:11.290 に答える
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

directory を検索するディレクトリに置き換える必要があります。これは Linux シェルでは機能しますが、Windows では機能しません。

Windows を使用している場合は、「ファイルとフォルダーの検索」機能を使用してみてください。

于 2012-07-30T17:38:05.037 に答える