我是处理大量数据的新手,我认为这里有人可能会提供帮助。结构如下:
我有一个名为“100”的父文件夹 在这个父文件夹中,我有10个子文件夹,标记为PKA1,PKA2等,直到PKA10。
在其中的每一个中,我有30个子目录相对于初始父文件夹:
1eV,2eV,3eV,高达30eV
在这些文件夹的每个文件夹中,我都有一个名为PKA.dump的文件。
我想复制每个PKA.dump文件夹的第20行并转储到数组中以便于处理。我怀疑这样的壮举是可能的,对我来说似乎很复杂。我加入了,所以我可以问这个问题。我认为这里的人会有解决这个问题的最好主意。
我希望最终会有30个阵列,每个阵列有30个不同的数据行
编辑:这是我对代码的尝试:我尝试编辑以满足我的需求。如何指定第20行?find foo -type f -name PKA.dump |
while read file; do
line=$(echo $file | sed 's/.*PKA.dump\([0-9]*\)$/\1/')
sed -n -e "$line {p; q}" $file
done
答案 0 :(得分:1)
这是一个应该做你需要的Powershell脚本:
Get-ChildItem PKA.dump -r | Sort-Object $_ | ForEach-Object { Get-Content $_ | Select -Index 19 } > output.txt
output.txt文件应该包含运行脚本的目录结构中名为PKA.dump的每个文件的第20行。
此外,这是一个简单的C#示例:
List<string> data = new List<string>();
foreach (string filePath in Directory.EnumerateFiles(@"C:\100", "PKA.dump", SearchOption.AllDirectories))
{
string[] lines = File.ReadAllLines(filePath);
data.Add(lines[19]); // zero based index for 20th line
}
string[] endResult = data.ToArray();
答案 1 :(得分:0)
考虑到你正在尝试使用java编程语言解决。
为了对大量数据执行读写操作,需要java.nio包的帮助,这些类基本上是为大量数据处理而设计的。
使用List / Queue存储从PKA.dump复制的行。无需创建如此多的数组。
步骤:
使用java.nio包类读取文件内容
将文件内容写入合适的数据结构,例如列表/队列
继续进行最终处理。