I have a C program that outputs two columns, utterly misaligned. The reason for the misalignment is lengths of words in the first column are very different.
I have an output file opened in vi. How do I quickly align these two columns? I am fine with using awk, perl, sed, and not just vi (7.2) toolset. Also, can we have a generic solution for files with more than two columns?
Here is sample file
column1 column2 ------- ------- sdfsdfsddfsdfsdfsdfsd 343r5 dfgdfgdf 234 gdfgdfgdfgdfgf 645
On the Home tab, click Paragraph, and then click Align. Select the Align with option and then select the paragraph tag pertaining to the column one paragraph. Click OK.
Each column is color-coded so you can see that column one is 7 characters wide, column two is 11 characters wide, and column three is 10 characters wide. The code to generate this would look like: printf("Column1 Column2 Column3\n"); printf("%7d%11d%10d\n", 100, 1221, 9348);
Presumably you are using printf
to output the columns in the first place. You can use extra modifiers in your format string to make sure things get aligned.
To give a more in depth example:
printf("%-30s %8s %8s\n", "Name", "Address", "Size"); for (i = 0; i < length; ++i) { printf("%-30s %08x %8d\n", names[i], addresses[i], sizes[i]);
This would print three columns like this:
Name Address Size foo 01234567 346 bar 9abcdef0 1024 something-with-a-longer-name 0000abcd 2048
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With