05. Tabs to Spaces & Spaces to Tabs expand, unexpand

There may be times when you have finished up writing code, but need to change tabs to spaces for a file to display consistently among different computers. The expand and unexpand commands help you convert from spaces to tabs and tabs to spaces.

Expand filter

In a pipeline, expand converts tabs to spaces. Using specific options, you can specify a number of parameters.

-i
Skip the tab conversions after non-blanks.
-t
Set the number of spaces to replace each tab. By default, it's set to 8.
$ expand -t 4 sample.xml
# Convert every tab into four spaces
<?xml version="1.0" encoding="UTF-8"?>
<note>    
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Please do not forget me this weekend!</body>
</note>

Unexpand filter

The unexpand filter does the opposite - it converts spaces to tabs.

-a
Convert all blanks.
--first-only
Convert only leading sequences.
-t
Set tabs to be a number of spaces apart. Default is 8.

In this example, assume that each "tab" instance is four spaces.

$ unexpand -t 2 sample.xml
# Convert every two spaces to a tab
<?xml version="1.0" encoding="UTF-8"?>
<note>    
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Please do not forget me this weekend!</body>
</note>

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources

Aching back from coding all day?

Self-Massage Tool

Aching back from coding all day? Try Back Problems

Relieve spasms, tight muscles, trigger points and pressure points with the Body Back Buddy! This trigger point massage is designed to help you self-message any area of your body - especially those that are hard to reach. Keeping your muscles relaxes and out of contraction is importan in helping to reduce pain and prevent muscle injury.

$ Check price
29.9529.95Amazon 4.5 logo(3,443+ reviews)

More Back Problems resources

Ad