搜索文件的Java程序

搜索文件的Java程序,java,bash,Java,Bash,嘿,我有一个Bash脚本,我试着把它“翻译”成Java。但是如果我执行它们,它们的输出就不一样了 我下载了这个编译来练习用Java搜索文件等,但它并没有输出相同的结果。我的剧本有什么问题吗 (请将进度条功能分开) 以下是我的脚本: 狂欢节: 如果[“$#”!=“1”];然后 echo“用法:违反解析或\n违反解析” 出口1 其他的 master=results.txt path=“$(pwd)/data/” 触摸$master _文件总数=$(查找$path-type f | wc-l) 文件计

嘿,我有一个Bash脚本,我试着把它“翻译”成Java。但是如果我执行它们,它们的输出就不一样了

我下载了这个编译来练习用Java搜索文件等,但它并没有输出相同的结果。我的剧本有什么问题吗

(请将进度条功能分开)

以下是我的脚本:

狂欢节:

如果[“$#”!=“1”];然后
echo“用法:违反解析或\n违反解析”
出口1
其他的
master=results.txt
path=“$(pwd)/data/”
触摸$master
_文件总数=$(查找$path-type f | wc-l)
文件计数=0
函数进度条{
让_progress=(${file_count}*100/${total_Files}*100)/100
让{u done=(${u progress}*4)/10
让_left=40-${u done}
_填充=$(printf“%${u done}s”)
_空=$(printf“%${u left}s”)
printf“\r进度:[${u fill//\\\\}${{u empty//-}]${u Progress}%%”
}
在读取-d$'\0'文件时查找$path-type f-print0 |
做
grep-a-E“$1”“$file”>>$master
((++file_count))
ProgressBar${number}${total_Files}
完成
fi
回音
回音
回波结果:
猫$master
rm$master
出口0
爪哇:

package.com公司;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner;
公共班机{
列表=新的ArrayList();
列表结果=新建ArrayList();
公共无效列表目录(文件目录){
File[]files=dir.listFiles();
如果(文件!=null){
对于(int i=0;i
输入字符串的结果:
“stefan.domanegg”
应该是:
“stefan”。domanegg@brennercom.net:654321“


Bash程序按预期返回输出,但Java程序返回
“EMPTY!!!”
,这意味着没有结果

刚刚添加了输出请添加
e.printStackTrace()
publicstaticvoidmain(String[]args)
函数中的
catch
子句,然后再次运行Java程序。可能会引发异常,而您对此一无所知。请阅读有关调试代码的提示。我添加了它,但结果相同,没有任何异常。您应该打印while循环中读取的每一行,以查看您是否正在从文件中读取所需的内容。
if [ "$#" != "1" ]; then
        echo "Usage: breach-parse <domain to search> <file to output> or \n breach-parse <domain to search><domain to search> <file to output>"
        exit 1
else
        master=results.txt
        path="$(pwd)/data/"

        touch $master
        total_Files=$(find $path -type f | wc -l)
        file_count=0

        function ProgressBar {
                let _progress=(${file_count}*100/${total_Files}*100)/100
                let _done=(${_progress}*4)/10
                let _left=40-${_done}

                _fill=$(printf "%${_done}s")
                _empty=$(printf "%${_left}s")

        printf "\r Progress : [${_fill// /\#}${_empty// /-}] ${_progress}%%"
        }

        find $path -type f -print0 | while read -d $'\0' file
        do
                grep -a -E "$1" "$file" >> $master
                ((++file_count))
                ProgressBar ${number} ${total_Files}
        done
fi
echo 
echo 
echo  Results:

cat $master
rm $master
exit 0
package com.company;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    List<File> list = new ArrayList<>();
    List<String> results = new ArrayList<>();

    public void listDir(File dir) {

        File[] files = dir.listFiles();
        if (files != null) {
            for (int i = 0; i < files.length; i++) {
                if (files[i].isDirectory()) {
                    listDir(files[i]);
                }
                else {
                    list.add(files[i]);
                }
            }
        }
    }

    public static void main(String[] args) {
        Main lmao = new Main();
        File fi = new File("C:\\Users\\marpr\\Documents\\BreachCompilation\\data");
        lmao.listDir(fi);

        System.out.println(args[0]);

        for(File f : lmao.list) {
            try {
                Scanner scanner = new Scanner(f);
                while (scanner.hasNextLine()) {
                    String line = scanner.nextLine();
                    if(line.contains(args[0])) {
                        lmao.results.add(line);
                    }
                }
            } catch(FileNotFoundException e) {
                e.printStackTrace();
            }
        }

        if(lmao.results.isEmpty()) {
            System.out.println("EMPTY!!!");
        } else {
            System.out.println("\nResults: ");
            for(String res : lmao.results) {
                System.out.println(res);
            }
        }
    }
}