将来自VM的mysql响应转换为特定格式

将来自VM的mysql响应转换为特定格式

使用 shell 作业,我从 mysql 收到以下文本格式的响应,

虚拟机上 mysql 的响应

按要求以文本方式

+--------+

|一个 |

+--------+

| 36 | 36

+--------+

+--------+

|乙|

+--------+

| 57 | 57

+--------+

+--------+

| C |

+--------+

| 11 | 11

+--------+

或类似的回应

A

36

57

C

11

我希望能够将数据转换为简单的方式作为文本文件,如下所示:

36

乙57

碳11

https://justpaste.it/edit/30310895/df1838c844c0fcd1

答案1

这是您要找的吗?

$ cat file
A
36
B
57
C
11

$ awk '{printf "%s%s", $0, (NR%2 ? OFS : ORS)}' file
A 36
B 57
C 11

答案2

/-筛选将从漂亮的表格中解开您的值:

cat pretty-tables-dump.txt | 
sed 's/\xC2\xA0//g' |
awk '$1=="|"{if(f){print f" "$2;f=""}else{f=$2}}'

编辑以预先通过 UTF NBSP 剥离sed

答案3

您可以使用\G代替 来;进行 mysql 查询。

例子 :

information_schema]> select count(distinct table_schema) as CNT_SCHEMA from TABLES ;
+------------+
| CNT_SCHEMA |
+------------+
|          9 |
+------------+
1 row in set (0.00 sec)

[information_schema]> select count(distinct table_schema) as CNT_SCHEMA from TABLES \G
*************************** 1. row ***************************
CNT_SCHEMA: 9
1 row in set (0.01 sec)

相关内容