I actually prefer no alignment at all (just a single space). But it's an interesting problem. I wonder why column doesn't have an option for this, seems like a perfect use case...
Aligning the entire fstab would lead to very long lines, at least in my case, as I have some filesystems with special options, and also some very long disk-by-id device paths. So I wrote a script that aligns each section (divided by empty lines or comment lines) individually.
Using ./fstab.sh /etc/fstab:
#!/bin/bash function push() { buffer="$buffer"$'\n'"$1" } function pop() { if [ "$buffer" != "" ] then echo "$buffer" | column -t buffer="" fi } buffer="" while read line do if [ "$line" == "" -o "${line:0:1}" == "#" ] then pop echo "$line" else push "$line" fi done < "$1" pop
Before:
# /etc/fstab: static file system information. # <fs> <mountpoint> <type> <opts> <dump/pass> # --- SPECIAL --- none /dev/shm tmpfs nosuid,nodev,noexec,noatime 0 0 none /tmp tmpfs noatime,nosuid,nodev 0 0 none /var/tmp/portage tmpfs noatime,mode=0750,gid=portage,uid=portage 0 0 # --- INTERNAL --- # SSD UUID=fa15678f-7e7e-4a47-8ed2-7cea7a5d037d / xfs noatime 0 0 UUID=529cc283-53bc-4acc-a4d3-f35278d3f2f9 /home xfs noatime 0 0 # HDD UUID=d7562145-654c-48bb-b8d2-1552a69186f5 /home/TV xfs noatime 0 0 UUID=952b5dee-8d2a-40b2-85f9-5e5092bc1e75 /home/steam xfs noatime 0 0 UUID=4dcb18c3-f3a5-4b03-8877-063c5cd836e4 /home/jn xfs noatime 0 0 UUID=c735614a-f5f3-4232-911f-8a17cb033521 /var/www xfs noatime 0 0 /dev/HDD/windows7 /mnt/windows7 ntfs-3g offset=105906176,noauto,noatime 0 0 # HDD (OLD) UUID=23deb461-bab5-45b7-9dca-9c2c4cdb4f50 /mnt/HDD/OLD-home xfs noauto,noatime 0 0 UUID=dd1e1eef-b548-4c94-8ebe-99dd7a648cb0 /mnt/HDD/OLD-music xfs noauto,noatime 0 0 UUID=2ae11a11-db04-4d27-a79e-d9b07dd19650 /mnt/HDD/OLD-opt xfs noauto,noatime 0 0 UUID=2abb2a27-2183-488e-8c24-e195ab3dcb5d /mnt/HDD/OLD-portage xfs noauto,noatime 0 0 UUID=3d0030f0-92da-4e66-8e60-369dfc586df7 /mnt/HDD/OLD-portage_tmp xfs noauto,noatime 0 0 UUID=89200c49-2fc2-45ed-81c8-e244b95db7ce /mnt/HDD/OLD-root xfs noauto,noatime 0 0 UUID=caebfb75-6a1c-4ed6-ad2f-d84d80221dc3 /mnt/HDD/OLD-schrott xfs noauto,noatime 0 0 UUID=cabddcee-cf07-4526-b3a3-9270edc9d171 /mnt/HDD/OLD-src xfs noauto,noatime 0 0 UUID=a2e4df4e-8c6d-4217-8889-6f483e872190 /mnt/HDD/OLD-tmp xfs noauto,noatime 0 0 UUID=4dd484f6-4142-45b3-b504-48625de1ab5c /mnt/HDD/OLD-var xfs noauto,noatime 0 0 # ODD /dev/sr0 /mnt/cdrom auto user,noauto,ro 0 0 # --- EXTERNAL --- # USB-Boot-Stick LABEL="boot_key" /boot ext2 noauto,noatime 0 0 LABEL="boot_dos" /mnt/boot/dos vfat noauto,noatime 0 0 LABEL="boot_iso" /mnt/boot/iso ext2 noauto,noatime 0 0 LABEL="live0" /mnt/boot/live0 ext2 noauto,noatime 0 0 LABEL="live1" /mnt/boot/live1 ext2 noauto,noatime 0 0 # iriver Story HD /dev/disk/by-id/usb-iriver_Story_EB07_3230204E6F76-0:0 /mnt/iriver/knv auto user,noauto,noatime 0 0 /dev/disk/by-id/usb-iriver_Story_SD_3230204E6F76-0:1 /mnt/iriver/ext auto user,noauto,noatime 0 0 # Sandisk Sansa CLIP UUID=C65F-1E04 /mnt/mp3 auto user,noauto,noatime 0 0 # Eltern-Fernseher UUID=115BF67A31CB6C02 /mnt/wdtv ntfs-3g locale=en_US.utf8,user,noauto 0 0 UUID=D27A-7C74 /mnt/pvr vfat user,noauto,noatime 0 0
After:
# /etc/fstab: static file system information. # <fs> <mountpoint> <type> <opts> <dump/pass> # --- SPECIAL --- none /dev/shm tmpfs nosuid,nodev,noexec,noatime 0 0 none /tmp tmpfs noatime,nosuid,nodev 0 0 none /var/tmp/portage tmpfs noatime,mode=0750,gid=portage,uid=portage 0 0 # --- INTERNAL --- # SSD UUID=fa15678f-7e7e-4a47-8ed2-7cea7a5d037d / xfs noatime 0 0 UUID=529cc283-53bc-4acc-a4d3-f35278d3f2f9 /home xfs noatime 0 0 # HDD UUID=d7562145-654c-48bb-b8d2-1552a69186f5 /home/TV xfs noatime 0 0 UUID=952b5dee-8d2a-40b2-85f9-5e5092bc1e75 /home/steam xfs noatime 0 0 UUID=4dcb18c3-f3a5-4b03-8877-063c5cd836e4 /home/jn xfs noatime 0 0 UUID=c735614a-f5f3-4232-911f-8a17cb033521 /var/www xfs noatime 0 0 /dev/HDD/windows7 /mnt/windows7 ntfs-3g offset=105906176,noauto,noatime 0 0 # HDD (OLD) UUID=23deb461-bab5-45b7-9dca-9c2c4cdb4f50 /mnt/HDD/OLD-home xfs noauto,noatime 0 0 UUID=dd1e1eef-b548-4c94-8ebe-99dd7a648cb0 /mnt/HDD/OLD-music xfs noauto,noatime 0 0 UUID=2ae11a11-db04-4d27-a79e-d9b07dd19650 /mnt/HDD/OLD-opt xfs noauto,noatime 0 0 UUID=2abb2a27-2183-488e-8c24-e195ab3dcb5d /mnt/HDD/OLD-portage xfs noauto,noatime 0 0 UUID=3d0030f0-92da-4e66-8e60-369dfc586df7 /mnt/HDD/OLD-portage_tmp xfs noauto,noatime 0 0 UUID=89200c49-2fc2-45ed-81c8-e244b95db7ce /mnt/HDD/OLD-root xfs noauto,noatime 0 0 UUID=caebfb75-6a1c-4ed6-ad2f-d84d80221dc3 /mnt/HDD/OLD-schrott xfs noauto,noatime 0 0 UUID=cabddcee-cf07-4526-b3a3-9270edc9d171 /mnt/HDD/OLD-src xfs noauto,noatime 0 0 UUID=a2e4df4e-8c6d-4217-8889-6f483e872190 /mnt/HDD/OLD-tmp xfs noauto,noatime 0 0 UUID=4dd484f6-4142-45b3-b504-48625de1ab5c /mnt/HDD/OLD-var xfs noauto,noatime 0 0 # ODD /dev/sr0 /mnt/cdrom auto user,noauto,ro 0 0 # --- EXTERNAL --- # USB-Boot-Stick LABEL="boot_key" /boot ext2 noauto,noatime 0 0 LABEL="boot_dos" /mnt/boot/dos vfat noauto,noatime 0 0 LABEL="boot_iso" /mnt/boot/iso ext2 noauto,noatime 0 0 LABEL="live0" /mnt/boot/live0 ext2 noauto,noatime 0 0 LABEL="live1" /mnt/boot/live1 ext2 noauto,noatime 0 0 # iriver Story HD /dev/disk/by-id/usb-iriver_Story_EB07_3230204E6F76-0:0 /mnt/iriver/knv auto user,noauto,noatime 0 0 /dev/disk/by-id/usb-iriver_Story_SD_3230204E6F76-0:1 /mnt/iriver/ext auto user,noauto,noatime 0 0 # Sandisk Sansa CLIP UUID=C65F-1E04 /mnt/mp3 auto user,noauto,noatime 0 0 # Eltern-Fernseher UUID=115BF67A31CB6C02 /mnt/wdtv ntfs-3g locale=en_US.utf8,user,noauto 0 0 UUID=D27A-7C74 /mnt/pvr vfat user,noauto,noatime 0 0