【问题标题】:/user/bin/awk: Argument list too long in awk [duplicate]/user/bin/awk:awk 中的参数列表太长 [重复]
【发布时间】:2026-01-22 17:50:02
【问题描述】:

可能重复:
Why do I get “/bin/sh: Argument list too long” when passing quoted arguments?

我在 shell 脚本中使用 awk 脚本,我正在处理多个文件,每次我从 awk 获取输出,在 shell 中处理它并将处理过的东西再次反馈到 awk 脚本中。

但这里的问题是,每次正在处理的数据都很大,大约 30000 行,我将其存储在一个变量中,并使用 -v 选项传递给 awk。

所以我得到一个错误

/usr/bin/awk: Argument list too long

如何解决这个问题的任何补救措施......我是否清楚这个问题

【问题讨论】:

标签: shell awk grep


【解决方案1】:

您试图向awk 传递太多参数。你不应该使用-v 来传递任意大量的数据;而是通过管道将其输入awk 的标准输入。

(如果没有看到您的代码的 sn-p,我无法向您展示示例代码,因为我不完全了解您当前如何处理数据。)

【讨论】:

  • 是的,我理解用户的观点......我已经以某种方式解决了这个错误......现在我没有向它传递任何参数,但是我得到 /usr/bin/ls 参数列表太长了.. . /usr/bin/expr ,, 参数列表太长.. 这个错误的任何原因是因为......因为这些语句不带参数,那么我怎么会得到这个错误
  • @User:不知何故,您正在将参数传递给这些命令。例如,你怎么打电话给ls
  • 您是否忘记引用您的变量? awk -v var="$data" '...'
  • 不,我没有.. 我的代码是一个循环,它在同一个 ls comamnd 上完美运行,一开始没有任何错误,然后它显示 /ur/bin/ls 错误,然后崩溃.. 我不知道知道这背后的原因