Next: , Previous: , Up: Operating on characters   [Contents][Index]

9.2 expand: Convert tabs to spaces

expand writes the contents of each given file, or standard input if none are given or for a file of ‘-’, to standard output, with tab characters converted to the appropriate number of spaces. Synopsis:

expand [option]… [file]…

By default, expand converts all tabs to spaces. It preserves backspace characters in the output; they decrement the column count for tab calculations. The default action is equivalent to -t 8 (set tabs every 8 columns).

The program accepts the following options. Also see Common options.

-t tab1[,tab2]…

If only one tab stop is given, set the tabs tab1 spaces apart (default is 8). Otherwise, set the tabs at columns tab1, tab2, … (numbered from 0), and replace any tabs beyond the last tab stop given with single spaces. Tab stops can be separated by blanks as well as by commas. As a GNU extension the last tab specified can be prefixed with a ‘/’ to indicate a tab size to use for remaining positions. For example, --tabs=2,4,/8 will set tab stops at position 2 and 4, and every multiple of 8 after that.

For compatibility, GNU expand also accepts the obsolete option syntax, -t1[,t2]…. New scripts should use -t t1[,t2]… instead.


Only convert initial tabs (those that precede all non-space or non-tab characters) on each line to spaces.

An exit status of zero indicates success, and a nonzero value indicates failure.

Next: , Previous: , Up: Operating on characters   [Contents][Index]