在 bash 中按列格式化输出

Format the Output in Columns in bash

你能帮我格式化列中的以下输出吗,这样当我 grep for WWN 时,我可以得到一个名字。这是一个超过1000行的大文件。

如果我在同一行中得到一个 Alias 及其 wwn 的一行,那就太棒了。

=========================================== ================

别名:a_name_A

            10:00:00:05:33:00:00:00; 10:00:00:05:12:12:23:00; 
            10:00:00:10:86:00:00:00

别名:a_name123_A

            20:00:00:10:56:05:12:23; 20:00:00:10:44:04:48:78; 
            20:00:00:10:67:78:90:00

别名:a_name2323_A

            20:00:00:00:44:33:22:11

别名:a_rep02_A

            20:00:00:33:33:44:55:55

=========================================

查看 CSV 格式的输出

a_name_A,10:00:00:05:33:00:00:00,10:00:00:05:12:12:23:00,10:00:00:10 :86:00:00:00

a_name123_A,20:00:00:10:56:05:12:23,20:00:00:10:44:04:48:78,20:00:00:10 :67:78:90:00

a_name2323_A,20:00:00:00:44:33:22:11

a_rep02_A,20:00:00:33:33:44:55:55

你可以使用类似的东西:

gawk '/alias/ {
        if(alias=="")
           alias=
        else
           {
           print alias data
           data=""
           alias=
           }
        next
}
{
        gsub(";",",",[=10=])
        gsub(" ","",[=10=])
        data=data [=10=]
}
END {
       print alias data
}' data.txt