导出SQOOP评估结果成逗号界的输出



我正在运行一个以管道分离格式产生输出的SQOOP评估代码。我想以逗号格式进行删除额外的格式,以便我可以将其存储在变量中并可以在其他地方使用。

以下是代码:

sqoop eval -Dmapreduce.job.queuename=comres $PASS_STRING --connect 'jdbc:sqlserver://XXXX:1433;DatabaseName=XXXX' --query "select column_name from information_schema.columns where table_name='MOT_BAJA' AND TABLE_CATALOG='EEEE'"

这是现在所显示的:

------------------------
| column_name          |
------------------------
| TB_CODIGO            |
| TB_ELEMENT           |
| TB_INGLES            |
| TB_IMSS              |
| TB_NUMERO            |
| TB_TEXTO             |
| LLAVE                |
------------------------    

我想要这样的:

TB_CODIGO,TB_ELEMENT,TB_INGLES,TB_IMSS,TB_NUMERO,TB_TEXTO,LLAVE    

您可以使用尴尬:

your_command | awk 'NR > 3 && NF==3 {printf "%s%s", (printed ? "," : ""), $2; printed++}'

说明:

NR > 3 && NF == 3:如果我们当前正在处理的行(nr(数量大于3,并且该行的字段数(NF(为3,则继续使用{ ... }中的代码来处理该行。<<<<<<<<<<<。/p>

printed:我们在此变量中保留我们已经打印的字段数量。

(printed ? "," : ""):如果至少打印了一个字段,则该评估为"。否则它将评估为空字符串"。

printf "%s%s", (printed ? "," : ""), $2:,如果我们之前已经打印了一个字段,请打印一个"。然后打印当前行的第二个单词。

最新更新