Wednesday, March 2, 2011

Use special characters as variables in bash

I have often run into problems where I needed to use a special character, such as a tab with grep in bash, and was unable to pass the tab as "\t".  I had to define a variable as the tab character using the octal value of the tabcharacter.

For instance, to grep for "foo(tab)bar" I had to do the following:
tabChar=`echo -e '\011'`
grep "foo${tabChar}bar" < input
Here is a list of the octal values of a few special characters that may be handy.



OCTAL ESC'D CTRL DESCRIPTION
007 \a Ctrl-G Alert/Beep
010 \b Ctrl-H Backspace
011 \t Ctrl-I Horizontal Tab
012 \n Ctrl-J Newline (line feed)
013 \v Ctrl-K Vertical Tab
014 \f Ctrl-L Form Feed (clear terminal)
015 \r Ctrl-M Carriage Return
033 \e Ctrl-[ Escape
047 \' Single Quote
134 \\ Backsplash


I hope this list helps.

No comments:

Post a Comment