gnu并行管道sed - 没有输入文件错误
Posted
技术标签:
【中文标题】gnu并行管道sed - 没有输入文件错误【英文标题】:gnu parallel pipe sed - no input files error 【发布时间】:2021-04-29 17:10:14 【问题描述】:我正在使用以下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 万行
【问题讨论】:
【参考方案1】:你需要-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
要了解原因:
https://www.gnu.org/software/parallel/man.html#QUOTING https://www.gnu.org/software/parallel/parallel_design.html#Always-running-commands-in-a-shell另外--block -1 --lb
可能比--block 1000M
更有效。
【讨论】:
使用选项-q
和 --lb
就可以了。谢谢@Ole Tange!以上是关于gnu并行管道sed - 没有输入文件错误的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:gnu/stubs-32.h:没有这样的文件或目录
致命错误:Python.h:没有这样的文件或目录错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1