gnu 并行管道 sed - 没有输入文件错误

问题描述

我正在使用以下 sed 脚本来执行一些查找和替换:

parallel --pipepart --block 1000M -a input.txt sed -ise 's/cat/dog/g; s/abc/xyz/g; s/def/22/g' > output.txt

但我收到以下错误

sed: no input files

我尝试删除 -i 选项,但结果仍然相同。

input.txt 文件包含字母和数字的组合,大约有 3000 万行

解决方法

您需要-q

parallel -q --pipepart --block 1000M -a input.txt sed -se 's/cat/dog/g; s/abc/xyz/g; s/def/22/g' > output.txt

了解原因:

还有 --block -1 --lb 可能比 --block 1000M 更有效率。