【发布时间】:2023-03-04 10:22:01
【问题描述】:
如果输入每次都是可变的,我们必须做什么,并且基于该输入,我们必须再次对第一个命令的输出进行另一次操作。请参考下面的例子。
假设我在终端上执行了 x 命令,它给我的输出如下(空格分隔):
abc efg hij klm nop qrs uvw
abc efg hij klm qrs uvw
有时有 6 列,有时有 5 列。
我将此输出传递给 awk 命令以打印第 6 列,即qrs,它在第一种情况下返回正确的结果,但在第二种情况下显示uvw。
【问题讨论】:
-
向我们展示您发布的 awk 命令(嗯,请尽量少)
-
情况 2 的预期输出是什么?您的 awk 命令实际上应该做什么?看起来工作正常,在这两种情况下它都会打印第 6 列:案例 1 中的“qrs”和案例 2 中的 uvw 实际上都是第 6 个字段。
-
->echo "abc efg hij klm nop qrs uvw" | awk '{ print $6}' qrs ->echo "abc efg hij klm qrs uvw" | awk '{ print $6}' uvw
-
是的,它就是这么做的。
uvw是case 2中的第 6 列,这是预期的。 -
@navnathbagade 你还没有说明如何识别你想要的“qrs”。是倒数第二列还是其他?即如果命令给出不同数量的列作为输出,你如何识别你想要的列?