Преобразование ответа mysql от виртуальной машины в определенный формат

Вы можете использовать awkдля разделения каждого блока на отдельные файлы, а затем pasteих вместе (ниже предполагается, что между каждым списком всегда есть пустые строки ).

awk '/^$/ {N++;next}{print >"file"N}' infile.txt
paste file*

Также вы можете переместить команду pasteв awk.

awk '/^$/ {N++;next}{print >"file"N} END{system("paste file*")}' inile.txt

Выходной сигнал:

List A    List B    List C
hi        Hi        Hello
hello     Yes
hw r u

чтобы получить красивый отступ при изменении длины строк, как показано ниже:

Входной файл:

list A
hi
hello
hw r u

List B
Hi this is list B
Yes

List C
Hello, this is list C

вы можете сделатьpaste file* |column -s $'\t' -tnи получите результат:

list A  List B             List C
hi      Hi this is list B  Hello, this is list C
hello   Yes
hw r u

1
30.08.2019, 09:33
2 ответа

Это то, что вы ищете?

$ cat file
A
36
B
57
C
11

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

Этот / -filter развернет ваши значения из красивых таблиц:

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

Отредактировано для добавления перед удалением UTF NBSP через sed.

1
27.01.2020, 23:30

Теги

Похожие вопросы