【发布时间】:2021-06-01 13:18:48
【问题描述】:
考虑使用这个 awk 脚本来打印每行的第 2 列:
awk '{print $2}' a.txt。 $2 不是 shell 变量,但是当我尝试将此代码提交给 qsub 时,$2 被解释为这样。即
qsub awk '{print $2}' a.txt
导致 qsub 执行命令
awk '{print }' a.txt
明确地说,我不是试图在 awk 脚本中使用 shell 变量;因此How do I use shell variables in an awk script? 不适用。
我尝试了Using awk with qsub and issues with quotations 中的建议,包括\$2 和
qsub -- awk '{print $2}' a.txt.
都不行。
我当然可以将 awk 放入脚本中并以这种方式调用 qsub,即 qsub awkscript.sh。但是,如果有办法从命令行使用 qsub+awk,我想学习一下。
【问题讨论】:
-
我从未听说过
qsub,但你可以试试qsub "awk '{print \$2}' a.txt"或qsub 'awk \"{print \$2}\" a.txt'。您可能需要在$2前面添加或删除反斜杠。 -
感谢您的提问。不幸的是,这些都不起作用。
-
我无言以对,我从没听说过
qsub,但对于@EdMorton——现在我知道我们陷入了困境。所以qsub(我有手册页)是提交脚本以供批处理服务器进行后台处理的用户实用程序。使用 Linux 21 年,不知怎的,没有它我也相处得很好:) -
它专门针对高性能计算批处理环境,但在这些环境中非常普遍。