开发者社区 问答 正文

需要在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 578 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答标签:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等