Gnu Parallel - 解密并将文件内容发送到Python脚本

时间:2015-06-10 20:20:40

标签: bash gnu gnu-parallel

我想解密一堆非常大的文件,并使用每个文件的解密版本作为Python脚本的输入,该脚本将处理其内容。所以,如果我有一个名为

的文件
 file1.sc.xz.gpg

运行GnuPG解密工具后,输出应存储在名为

的文件中
 file1.sc.xz 

在同一目录中,此文件应该是Python脚本的输入,它将处理其内容。理想情况下,我想在一个单独的Bash命令中执行此操作,但我找不到正确的方法来执行此操作。我试过的是:

 find test/ -type f | parallel 'f="{}"; g="${f%.*}"; gpg "$f" > "$g" | python iterating-over-tokens.py "$g" '

但不起作用。还有其他建议吗?非常感谢提前。

稍后编辑:如果我可以将解密文件(* .sc.xz)内容作为参数直接发送到Python脚本,那就更好了。

1 个答案:

答案 0 :(得分:1)

直接使用Python:

parallel gpg -o - {} '|' python -c "'import sys; print sys.stdin.read().upper()'" ::: *.gpg 

首先创建解密文件:

parallel gpg -o {.} {} ';' python -c "'import sys; print sys.argv'" {.} ::: *.gpg 

您需要能够在不输入密码的情况下解密。如果gpg要求密码短语首先运行gpg-agent