在子 shell 中执行 cut 和 sed 来设置变量时出现“参数列表太长”

在子 shell 中执行 cut 和 sed 来设置变量时出现“参数列表太长”

我编写了一个 bash 脚本,其中嵌入了 python 代码。我所做的是读取文件并使用下面的 bash 命令剪切它,然后导出它以便 python 代码可以使用它:

export BWA_compare=$(cut --output-delimiter='' -f1-3 ${BWA_AT}| sed 1d)

问题是我得到

/bin/cut: Argument list too long
/bin/sed: Argument list too long

它适用于较小的文件。您可以出口的数量有限制吗?

答案1

参数的数量和参数的组合长度都有限制。这些不是统一的值,而是取决于系统。

通常此类问题可以通过 来解决xargs

但在我看来,你使用的是cut错误的。cut期望只有文件是参数。${BWA_AT}文件列表很大吗?如果是Python代码那么你需要类似的东西

echo "${BWA_AT}" | cut

如果它确实是一个文件列表那么你需要类似的东西

echo "${BWA_AT}" | xargs cut

所需的xargs选项取决于分隔符。

相关内容