搜索文件的Java程序
嘿,我有一个Bash脚本,我试着把它“翻译”成Java。但是如果我执行它们,它们的输出就不一样了 我下载了这个编译来练习用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) 文件计
如果[“$#”!=“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);
}
}
}
}