Alv*_*Das 5 parallel-processing bash gnu-parallel
我有一个简单的 bash 脚本可以运行:
cat full_path.csv | parallel --progress -j +0 'echo -n {},; pdfgrep -c [^_] {};' > path_count.csv
Run Code Online (Sandbox Code Playgroud)
Parallel 的进度指示器"--progress",写入文件path_count.csv。我只想echo {}和pdfgrep {}写入文件,同时显示--progress到屏幕输出。
如果我做 :
cat full_path.csv | parallel --progress -j +0 'echo -n {},>>path_count.csv; pdfgrep -c [^_] {}>>path_count.csv;'
Run Code Online (Sandbox Code Playgroud)
文件 path_count 仍然是乱码。
任何帮助表示赞赏。谢谢阿尔文
您看到的行为不是 GNU Parallel 的设计目的: --progress 通常发送到 STDERR 而不是 STDOUT,正是出于这个原因:
$ seq 3 | bin/parallel --progress echo {} >/tmp/out
Computers / CPU cores / Max jobs to run
1:local / 8 / 3
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
local:0/3/100%/0.0s
$ cat /tmp/out
1
2
3
Run Code Online (Sandbox Code Playgroud)
GNU Parallel 是否有本地修改?您能在其他系统上重现该问题吗?
PS:而不是“echo -n”为什么要尝试:--tag