linux-GNU Parallel-将输出重定向到具有特定名称的文件
作者:互联网
在bash中,我正在运行GnuPG来解密某些文件,并且我希望将输出重定向到具有相同名称但具有不同扩展名的文件.基本上,如果我的文件名为
file1.sc.xz.gpg
运行GnuPG工具后出现的文件,我想存储在另一个名为
file1.sc.xz
我目前正在尝试
find . -type f | parallel "gpg {} > {}.sc.xz"
但这会导致一个名为file1.sc.xz.gpg.sc.xz的文件.我怎样才能做到这一点?
以后的编辑:我想在一个bash命令中执行此操作,而无需事先知道文件名.
解决方法:
您可以使用bash变量扩展来切断扩展名:
$f=file1.sc.xz.gpg
$echo ${f%.*}
file1.sc.xz
例如.:
find . -type f | parallel bash -c 'f="{}"; g="${f%.*}"; gpg "$f" > "$g"'
或者,使用parallel
的扩展:
find . -type f | parallel 'gpg "{}" > "{.}"'
标签:bash,gnu-parallel,linux 来源: https://codeday.me/bug/20191028/1950800.html