Необходимо преобразовать вывод команды в значения через запятую в Linux - PullRequest
0 голосов
/ 02 июля 2019

Я пишу код, который производит вывод следующим образом в сценарии оболочки. Мне нужен этот вывод в формате через запятую. Это пример выходных данных, фактическое количество значений и т. Д. Может варьироваться в зависимости от заданных входных данных, но общий формат выходных данных останется неизменным.

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

1 Ответ

0 голосов
/ 02 июля 2019

Еще один пример из примера:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...