locked
unixの以下のコマンドと同じ動作を行いたい。 RRS feed

  • 質問

  • お世話になっております。

    大量のファイルを持つ、元のソースコード、50本くらいに手をいれ、その修正コード一覧を作成しようとしています。
    修正箇所には全て "// Technish Modify...."とか、コメントを入れています。
    この場合、unixであると

    grep -l "Technish"  ` find ./ -type f`

    とかやれば一覧が出ますが、Windowsではどうやるのかよく分かりません・
    grep 部分がfindstr /m で置き換わるのは分かりますが、コマンドに対して他のコマンドの出力結果を渡す所は
    どうやればよいのでしょうか?






    2010年1月31日 7:27

回答

  • findstr /c:"Technish" /M  /S 検索したいフォルダ\*.* のような感じでしょうか。
    コマンドプロンプトで findstr /? などで「その他のオプションは確認してください。

    例えば、
    findstr /c:"Technish" /M  /S D:\java\*.*

    findstr /c:"Technish" /M  /S D:\java\*.java
    などのような感じで、一覧が画面表示されるはずなので、あとは必要に応じて、

    findstr /c:"Technish" /M  /S D:\java\*.* > D:\List.txt
    findstr /c:"Technish" /M  /S D:\java\*.* | more
    などでテキストファイルに保存したり、1画面ずつ表示を停止したりが可能です。


    ※対象ファイルのカウントは、BATなどで別途仕組みが必要になりそうです。

    • 回答としてマーク 三沢健二 2010年2月9日 7:42
    2010年1月31日 13:53

すべての返信

  • 単純にコマンドの結果を次のコマンドに渡すのであれば、パイプで可能だと思いますが、
    grep -l "Technish"  ` find ./ -type f`
    こちらがよく理解できていないので(grepやfindは大体分かるのですが・・・)、適用できるかどうかは判断してみてください。

    リダイレクトとパイプ
    http://www.fireproject.jp/feature/bash/basic/redirect-pipe.html
    2010年1月31日 8:40
  • 参考までに、コマンドの結果を載せます。
    winのdosプロンプトから、以下のような結果を得られるのなら何でもよいです。
    やりたい事はカレンドディレクトリ配下の全ファイルからgrep条件に引っかかる、ファイルの「一覧」が欲しいのです。

    後、最後に書くように 、 |wc とかでカウントもとりたいです。

    タッタ、これだけの事をやるのに、winのコマンドでは四苦八苦してしまいます。

    [test00@host00 tmp]$ grep -l Technish `find ./ -type f `
    ./jp/co/test/test_programs/foundation/portal/portal/display/event/PortalDisplayEvent.java
    ./jp/co/test/test_programs/foundation/portal/portal/display/event/PortalDisplayEventResult.java
    ./jp/co/test/test_programs/foundation/portal/portal/display/service/controller/PortalDisplayTransition.java
    ./jp/co/test/test_programs/foundation/portal/portal/display/service/controller/PortalDisplayServiceController.java
    ./jp/co/test/test_programs/foundation/portal/portal/display/service/controller/PortalDisplayServiceResult.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetNotCompletedListEvent.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetNewlyArrivalTaskListEvent.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetTaskListConsentedListEvent.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetNewlyArrivalTaskListEventResult.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetNotCompletedListEventResult.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetTaskListConsentedListEventResult.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetTaskListReferListEvent.java
    ./jp/co/test/test_programs/foundation/bpw/model/event/GetTaskListReferListEventResult.java
    ./jp/co/test/test_programs/foundation/bpw/model/object/NotCompletedViewSelectKey.java
    ./jp/co/test/test_programs/foundation/bpw/model/object/ReferTaskInfoSelectKey.java
    ./jp/co/test/test_programs/foundation/bpw/model/data/BPWDataIF.java
    ./jp/co/test/test_programs/foundation/bpw/business/Portlet/view/NewlyArrivalPortletHelperBean.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/view/NotCompletedBodyBean.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/view/ReferBodyBean.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/view/ConsentedSelfBodyBean.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ReferBodyServiceResult.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ReferBodyTransition.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ConsentedBodyServiceController.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ConsentedBodyTransition.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/NotCompletedBodyTransition.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/NotCompletedBodyServiceResult.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/NotCompletedBodyServiceController.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ConsentedBodyServiceResult.java
    ./jp/co/test/test_programs/foundation/bpw/business/TaskList/controller/ReferBodyServiceController.java
    ./jp/co/test/test_programs/system/bpw/BPWIntramartDBDAO.java
    ./jp/co/test/test_programs/system/bpw/GetNewlyArrivalTaskListEventListener.java
    ./jp/co/test/test_programs/system/bpw/TaskListConsentedViewIntramartDBDAO.java
    ./jp/co/test/test_programs/system/bpw/GetNewlyArrivalTaskListIntramartDBDAO.java
    ./jp/co/test/test_programs/system/bpw/TaskListReferViewIntramartDBDAO.java
    ./jp/co/test/test_programs/system/bpw/GetTaskListReferListEventListener.java
    ./jp/co/test/test_programs/system/bpw/GetNotCompletedListEventListener.java
    ./jp/co/test/test_programs/system/bpw/GetNotCompletedListIntramartDBDAO.java
    ./jp/co/test/test_programs/system/bpw/GetTaskListConsentedListEventListener.java
    ./bpw/Portlet/NewlyArrivedPortlet.jsp
    ./bpw/TaskList/NotCompletedBody.jsp
    ./bpw/TaskList/ReferBody.jsp
    ./bpw/TaskList/ConsentedSelfBody.jsp
    ./bpw/business/Portlet/NewlyArrivedPortlet.jsp
    ./bpw/business/TaskList/NotCompletedBody.jsp
    ./bpw/business/TaskList/ReferBody.jsp
    ./bpw/business/TaskList/ConsentedSelfBody.jsp

    [test00@host00 tmp]$ grep -l Technish `find ./ -type f ` |wc
         53      53    3933
    2010年1月31日 12:23
  • findstr /c:"Technish" /M  /S 検索したいフォルダ\*.* のような感じでしょうか。
    コマンドプロンプトで findstr /? などで「その他のオプションは確認してください。

    例えば、
    findstr /c:"Technish" /M  /S D:\java\*.*

    findstr /c:"Technish" /M  /S D:\java\*.java
    などのような感じで、一覧が画面表示されるはずなので、あとは必要に応じて、

    findstr /c:"Technish" /M  /S D:\java\*.* > D:\List.txt
    findstr /c:"Technish" /M  /S D:\java\*.* | more
    などでテキストファイルに保存したり、1画面ずつ表示を停止したりが可能です。


    ※対象ファイルのカウントは、BATなどで別途仕組みが必要になりそうです。

    • 回答としてマーク 三沢健二 2010年2月9日 7:42
    2010年1月31日 13:53
  • おっと、findstrのほうにサブフォルダオプションが在ったんですか・・・・
    コレは気付きませんでした。ありがとうございます。
    2010年1月31日 17:25
  • こんにちは、フォーラムオペレーターの三沢健二です。

    OMEGAT さん、いつも回答ありがとうございます。

    それでは、案内いただいた内容が参考になられたようですので、私の方で [回答としてマーク] を付けさせていただきますね。


    今後とも TechNet Forum をよろしくお願いします。

    ______________________________________
    マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    2010年2月9日 7:45