`-a` 与 `cat`ting

问题描述 投票:0回答:1

例如,当尝试一次处理 128 个字节的文件时,此方法有效:

cat input.dat | parallel --pipe --recend '' -k --block-size 128 "<command>" > output.dat

但是这个

parallel -a input.dat --pipe --recend '' -k --block-size 128 "<command>" > output.dat

抛出错误:

parallel: Warning: A NUL character in the input was replaced with \0.
parallel: Warning: NUL cannot be passed through in the argument list.
parallel: Warning: Did you mean to use the --null option? 

为什么?

gnu-parallel
1个回答
0
投票

差异来自于

parallel
处理输入的方式:

  1. cat input.dat | parallel ...

    管道数据直接将其视为流,
    --pipe
    将其分割成块,而不解释 NUL 字符。

  2. parallel -a input.dat ...

    -a
    选项将
    input.dat
    读取为参数列表,其中 NUL 字符会导致警告,除非使用
    --null

要解决

-a
的问题,请使用:

parallel -a input.dat --pipe --recend '' -k --block-size 128 --null "<command>" > output.dat
© www.soinside.com 2019 - 2024. All rights reserved.