Given:
$ cat file
1234|sdan:active|sdax:active|sdbh:active|sdcv:active|sddf:active|sddp:active|Total paths 6 : OK
1235|sdc:active|sdm:active|sdw:active|sdbk:active|sdbu:active|sdce:active|Total paths 6 : OK
1236|sdam:active|sdaw:active|sdbg:active|sdde:active|sdcu:active|sddo:active|Total paths 6 : OK
Here is an awk that will print all fields the longer of the value of w
or the length of the string in that field:
$ awk 'BEGIN{OFS=FS="|"; w=8}
{for (i=1;i<=NF;i++) printf "%-*s%s", w, $i, i==NF ? ORS : OFS}' file
1234 |sdan:active|sdax:active|sdbh:active|sdcv:active|sddf:active|sddp:active|Total paths 6 : OK
1235 |sdc:active|sdm:active|sdw:active|sdbk:active|sdbu:active|sdce:active|Total paths 6 : OK
1236 |sdam:active|sdaw:active|sdbg:active|sdde:active|sdcu:active|sddo:active|Total paths 6 : OK
If you want to cut the longer fields to fit that fixed width:
$ awk 'BEGIN{OFS=FS="|"; w=11}
{for (i=1;i<=NF;i++) printf "%-*s%s", w, substr($i,1,w), i==NF ? ORS : OFS}
' file
1234 |sdan:active|sdax:active|sdbh:active|sdcv:active|sddf:active|sddp:active|Total paths
1235 |sdc:active |sdm:active |sdw:active |sdbk:active|sdbu:active|sdce:active|Total paths
1236 |sdam:active|sdaw:active|sdbg:active|sdde:active|sdcu:active|sddo:active|Total paths
If you want to run through the file to get the width that will fit all fields then use that to print all fields in that fixed width:
$ awk 'BEGIN{OFS=FS="|"}
NR==FNR {for (i=1;i<=NF;i++) w=length($i)+1>w ? length($i)+1 : w; next}
{for (i=1;i<=NF;i++) printf "%-*s%s", w, $i, i==NF ? ORS : OFS}
' file file
1234 |sdan:active |sdax:active |sdbh:active |sdcv:active |sddf:active |sddp:active |Total paths 6 : OK
1235 |sdc:active |sdm:active |sdw:active |sdbk:active |sdbu:active |sdce:active |Total paths 6 : OK
1236 |sdam:active |sdaw:active |sdbg:active |sdde:active |sdcu:active |sddo:active |Total paths 6 : OK