我需要从下面的输出中检索239,631等,并将其存储在linux中的变量中 - 这是impala结果的输出。
+-----------------+
| organization_id |
+-----------------+
| 239 |
| 631 |
| 632 |
| 633 |
+-----------------+
下面是我正在运行的查询。
x=$(impala-shell -q "${ORG_ID}" -ki "${impalaserver}");
怎么做?
你可以尝试一下吗?这将删除所有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}}'
那这个呢 :
x=$(impala-shell -B -q "${ORG_ID}" -ki "${impalaserver}")
我刚刚添加了-B
选项,它删除了漂亮的打印和标题。
如果您想要以逗号分隔的值,可以将结果传递给tr
:
echo $x | tr ' ' ','