在 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
你能帮我格式化列中的以下输出吗,这样当我 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