我每天晚上都在处理一个大目录。每晚它会累积大约一百万个文件,其中一半.txt
是我需要根据其内容移动到其他目录的文件。
每个.txt
文件都是用管道分隔的,并且仅包含20条记录。记录6是包含我需要确定将文件移动到哪个目录的信息的记录。
记录示例:
A|CHNL_ID|4
Run Code Online (Sandbox Code Playgroud)
在这种情况下,文件将移至/out/4
。
此脚本的处理速度为每小时80,000个文件。
关于如何加快速度有什么建议吗?
opendir(DIR, $dir) or die "$!\n";
while ( defined( my $txtFile = readdir DIR ) ) {
next if( $txtFile !~ /.txt$/ );
$cnt++;
local $/;
open my $fh, '<', $txtFile or die $!, $/;
my $data = <$fh>;
my ($channel) = $data =~ /A\|CHNL_ID\|(\d+)/i;
close($fh);
move ($txtFile, "$outDir/$channel") or die $!, $/;
}
closedir(DIR);
Run Code Online (Sandbox Code Playgroud) Checkmarx 为我的 Controller 类中的以下方法提供了 XSS 漏洞。\n具体来说:此元素\xe2\x80\x99s 值(ResultsVO)然后在没有经过适当清理或验证的情况下流经代码,并最终在方法中显示给用户:
\n\n @RequestMapping(value = "/getresults", method = RequestMethod.POST, produces = "application/json")\n @ResponseBody\n public ResultsVO getConfigResults(@RequestBody ResultsVO resultsVO, HttpServletRequest request)\n throws OverrideApplicationException {\n String loggedUserId = request.getHeader("USER");\n return resultsService.getConfigResults(resultsVO, loggedUserId);\n }\n
Run Code Online (Sandbox Code Playgroud)\n\nResultsVO 对象有很多 String 属性,我只是想知道是否有一种优雅的方法对它们进行编码以防止此漏洞。
\naix ×1
checkmarx ×1
controller ×1
java ×1
owasp ×1
perl ×1
readdir ×1
regex ×1
sanitization ×1