Next: Reporting Bugs, Previous: Invoking tabfmt, Up: Top
tabfmt is particularly useful to convert various system
configuration files to a more readable format.
$ tabfmt /etc/mtab
/dev/hda1 / ext3 rw 0 0
/dev/hda2 /tmp ext3 rw,nosuid,nodev 0 0
/dev/hda3 /var ext3 rw,nosuid,nodev 0 0
/dev/hda4 /usr ext3 rw,nodev 0 0
/dev/hda5 /home ext3 rw,nosuid,nodev 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
tmpfs /dev tmpfs rw,size=10M,mode=0755 0 0
This example splits /etc/mtab (which contains space-separated data), and outputs a tab-delimited table with constant-width columns. (You may not find tabs here if you are reading this manual in printed or HTML format.)
$ awk -F: '( $7 == "/bin/false")' /etc/passwd |
> cut -d: -f1,3,4,5,6 |
> tabfmt -d: -w,,,15, -D\| -p1
Debian-exim | 102 | 102 | | /var/spool/exim4
sshd | 100 | 65534 | | /var/run/sshd
messagebus | 101 | 104 | | /var/run/dbus
hal | 105 | 105 | Hardware abstra | /var/run/hal
identd | 103 | 65534 | | /var/run/identd
gdm | 104 | 107 | Gnome Display M | /var/lib/gdm
ntop | 109 | 109 | | /var/lib/ntop
scanlogd | 107 | 65534 | | /usr/lib/scanlogd
cups-pdf | 108 | 65534 | Anonymous Samba | /var/spool/cups-pdf
This example first uses awk to extract from /etc/passwd
those accounts whose login shell is /bin/false. It then uses
cut to print only the login name, uid, gid, user name and home
directory. Finally, tabfmt is invoked to produce a human-readable
table, truncating user names which exceed 20 characters in length.
$ for f in README NEWS AUTHORS THANKS COPYING INSTALL ChangeLog; do
> echo -n $f:
> ls -1 /usr/share/doc/*/$f 2>/dev/null | wc -l
> done | tabfmt -d: -al,r -D" = "
README = 443
NEWS = 13
AUTHORS = 262
THANKS = 51
COPYING = 1
INSTALL = 2
ChangeLog = 0
This example demonstrates how to use tabfmt at the end of a
pipeline gathering some file statistics. It uses the -a option
to right-align the numbers, and the -D option to set the output
delimiter to a `=' with spaces around it.