メモ:

メモ:

File.createTempFileキーワードと行番号を含むすべてのJavaファイルを見つけたいです。これが私がしたことです:

$ find . -name "*.java" | xargs grep -n "File.createTempFile"
./nuxeo-studio-test/src/test/java/com/nuxeo/studio/web/StudioServletTest.java:162:            File tmpFile = File.createTempFile(jarEntryName, null, Environment.getDefault().getTemp());
./nuxeo-studio-ui/src/main/java/com/nuxeo/studio/core/builders/WorkflowFeatureBuilder.java:421:            tmp = File.createTempFile(".workflow-to-zip", ".tmp", workspace.getRoot());
./nuxeo-studio-ui/src/test/java/com/nuxeo/studio/core/backup/TestS3Backup.java:101:        File tempFile = File.createTempFile(RandomStringUtils.randomAlphabetic(5), ".tmp");
./nuxeo-studio-ui/target/classes/com/nuxeo/studio/core/builders/WorkflowFeatureBuilder.java:421:            tmp = File.createTempFile(".workflow-to-zip", ".tmp", workspace.getRoot());
./nuxeo-studio-web/src/main/java/com/nuxeo/studio/web/v1/ProjectResource.java:191:            File zip = File.createTempFile(filename + "-", ".zip", tempRepo);

しかし、私はこの結果が長すぎて読めないことがわかりました。ファイルパスと行番号だけを維持したいです。予想される結果は次のとおりです。

./nuxeo-studio-test/src/test/java/com/nuxeo/studio/web/StudioServletTest.java:162
./nuxeo-studio-ui/src/main/java/com/nuxeo/studio/core/builders/WorkflowFeatureBuilder.java:421
./nuxeo-studio-ui/src/test/java/com/nuxeo/studio/core/backup/TestS3Backup.java:101
./nuxeo-studio-ui/target/classes/com/nuxeo/studio/core/builders/WorkflowFeatureBuilder.java:421
./nuxeo-studio-web/src/main/java/com/nuxeo/studio/web/v1/ProjectResource.java:191

誰かが私にこれを行う方法を教えてもらえますか?

ベストアンサー1

これにより、pcregrep次のことができます。

pcregrep --include='\.java$' -rHno1 '()File\.createTempFile' .

出力は次のとおりです。

./path/to/file.java:12:

パターンが 1 行に複数回発生すると、同じ数の行が出力されます。これを望まない場合は、次のように変更できます。

pcregrep --include='\.java$' -rHno1 '^().*?File\.createTempFile' .

おすすめ記事