我需要从下面的输出中检索239、631等,并将其存储在linux中的变量中-这是impala结果的输出。
+-----------------+
| organization_id |
+-----------------+
| 239 |
| 631 |
| 632 |
| 633 |
+-----------------+
下面是我正在运行的查询。
x=$(impala-shell -q "${ORG_ID}" -ki "${impalaserver}");
如何做到?
答案 0 :(得分:0)
能否请您尝试以下。这将删除所有Input_file的重复项(即使单个id出现在1 Organization_id中,也不会再打印在其他节中)
your_command | awk -v s1="'" 'BEGIN{OFS=","} /---/{flag=""} /organization_id/{flag=1;getline;next} flag && !a[$2]++{val=val?val OFS s1 $2 s1:s1 $2 s1} END{print val}'
如果您需要打印id(在1节中出现,并且可能在organization_id的其他节中出现,然后尝试以下操作):
your_command | awk -v s="'" 'BEGIN{OFS=","} /---/{print val;val=flag="";delete a} /organization_id/{flag=1;getline;next} flag && !a[$2]++{val=val?val OFS s1 $2 s1:s1 $2 s1} END{if(val){print val}}'
答案 1 :(得分:0)
那呢:
x=$(impala-shell -B -q "${ORG_ID}" -ki "${impalaserver}")
我刚刚添加了-B
选项,该选项删除了漂亮的打印件和标题。
如果需要逗号分隔的值,可以将结果通过管道传递到tr
:
echo $x | tr ' ' ','