GNU 并行中的 Perl 命令?
Perl command inside GNU parallel?
我正在尝试运行并行执行此操作:
parallel perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' {} > {}.fix ::: *
也就是说,我想对当前目录下的所有文件并行执行perl命令。这不起作用,但我不知道为什么。
评论:perl 命令正在修复表中的浮点数。参见 。
在Bash中你可以做一个函数:
doit() {
perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' "" > ""
}
export -f doit
parallel doit {} {}.fix ::: *
在 Zsh 中导出函数需要使用变量:
doit() {
perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' "" > ""
}
PARALLEL_ENV="$(typeset -f doit)"
parallel doit {} {}.fix ::: *
或者您可以引用 perl 表达式和重定向(这也适用于 Bash):
parallel perl -pe \''!/^step/ && s/(\S+)/sprintf("%.2e", )/ge'\' {} '>' {}.fix ::: *
我正在尝试运行并行执行此操作:
parallel perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' {} > {}.fix ::: *
也就是说,我想对当前目录下的所有文件并行执行perl命令。这不起作用,但我不知道为什么。
评论:perl 命令正在修复表中的浮点数。参见
在Bash中你可以做一个函数:
doit() {
perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' "" > ""
}
export -f doit
parallel doit {} {}.fix ::: *
在 Zsh 中导出函数需要使用变量:
doit() {
perl -pe '!/^step/ && s/(\S+)/sprintf("%.2e", )/ge' "" > ""
}
PARALLEL_ENV="$(typeset -f doit)"
parallel doit {} {}.fix ::: *
或者您可以引用 perl 表达式和重定向(这也适用于 Bash):
parallel perl -pe \''!/^step/ && s/(\S+)/sprintf("%.2e", )/ge'\' {} '>' {}.fix ::: *