我正在编写一个代码,该代码在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
答案 0 :(得分:0)
另一种示例方式:
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