我有一个 bash 脚本,用于迭代文件列表并搜索正则表达式匹配项。这是我当前代码的片段:
for file in $Files_To_Parse; do (cat $file) | grep -ioE "($Keys$Delimiters$Payload+$End_String)" | grep -v 'null' | grep -v '*' done
$Files_To_Parse 是空格分隔的文件名字符串
$Keys、$Delimiters、$Payload$ 和 End_String 是正则表达式模式。
该代码目前可以运行(运行缓慢)。
我想要并行处理多个文件,或者并行搜索正则表达式匹配的一个文件;但是,我不确定如何使用 GNU 的 Parallel 包来完成此任务。
感谢您的关注。
答案1
请注意,您的磁盘 I/O 可能会限制您:
doit() {
(cat "$1") | grep -ioE "($Keys$Delimiters$Payload+$End_String)" | grep -v 'null' | grep -v '*'
}
export -f doit
parallel doit ::: $Files_To_Parse
考虑逐步完成本教程。你的命令行会喜欢你的:
man parallel_tutorial