开发者社区> 问答> 正文

需要在Linux中将命令的输出转换为逗号分隔的值

我正在编写一个代码,该代码在shell脚本中以以下方式生成输出。我需要此输出以逗号分隔的格式。这是一个示例输出,实际值的数量等可能会根据给定的输入而有所不同,但输出的总体格式将保持不变。

------------------------
| 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

展开
收起
祖安文状元 2020-01-06 16:23:14 542 0
1 条回答
写回答
取消 提交回答
  • 示例的另一种方式:

    echo "
    ------------------------
    | column_name          |
    ------------------------
    | TB_CODIGO            |
    | TB_ELEMENT           |
    | TB_INGLES            |
    | TB_IMSS              |
    | TB_NUMERO            |
    | TB_TEXTO             |
    | LLAVE                |
    ------------------------
    " | sed 's/[|,-]//g' | paste -d, -s | tr -d '[[:space:]]' | sed -e 's/,,//g' -e 's/column_name//g'
    
    TB_CODIGO,TB_ELEMENT,TB_INGLES,TB_IMSS,TB_NUMERO,TB_TEXTO,LLAVE
    
    

    因此,通用方式如下:

    <your_mysql_output> | sed 's/[|,-]//g' | paste -d, -s | tr -d '[[:space:]]' | sed -e 's/,,//g' -e 's/column_name//g'
    
    

    如果在MySQL查询本身中取消列标题和边框,则可以最小化列名和边框字符的解析。例如,

    mysql -u root -p -s -r -e "show databases;"
    Enter password: 
    Database
    information_schema
    mysql
    test
    
    2020-01-06 16:23:29
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载