How do convert tabs to spaces in a file using a bash shell?
You can use various tools. The expand command converts all tabs to spaces. It preserves backspace characters in the output; they decrement the column count for
tab calculations.
expand input.file > output.file expand data.txt > output.txt expand -t 2 data.txt > output.txt
The -t option can be used to set comma separated list of explicit tab positions. You can use the unexpand command convert spaces to tabs. See man page for more info:
man expand
man unexpand
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop






![Linux: Find Out My Group Name [ Group Memberships ]](http://s13.cyberciti.org/images/shared/rp/3/16.jpg)





{ 5 comments… read them below or add one }
My imput.file looks like:
$ cat input.file
tux Linux
tux Linux
tux Linux
tux Linux
$
But executing expand on the file showing the same format(in STDOUT) as input.file…
$ expand input.file
tux Linux
tux Linux
tux Linux
tux Linux
$
Though I am getting the expected result with “tr” command.
I am using CentOS 5.3(x86_64); Any comment ?
You can also use perl:
perl -pi -e ‘s/\t/ /’ file.name
:retab
for vim.
s are truncated in my posts itself :)
expand fails miserably on multibyte characters (i.e. on non-ASCII characters in UTF-8 encoding)
still as of coreutils 8.21 (2013)