我正在编写一个代码,该代码在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
示例的另一种方式:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。