For example, I wanted to use the sort utility with the -t option to specify tab separators, but

sort -t "\t"

doesn't work.

  • Why won't '\011' work? Tried it on my Linux box and for some reason it doen't work.
    – Bing Bang
    Jun 3, 2020 at 22:55
  • I tried \t and it doesn't work, neither does \n, Is there a csh switch to turn off escaped characters? If there is, I've never heard of it.
    – Bing Bang
    Jun 3, 2020 at 23:26

3 Answers 3


Don't use double quotes.

sort -t $'\t'

Or I think Ctrl V inserts a Tab??



  • Doesn't tab insert a tab? Nov 28, 2011 at 16:32
  • 6
    @RedGrittyBrick Tab completes.
    – Daniel Beck
    Nov 28, 2011 at 16:48
  • 16
    Control-V alone won't work; Control-V + Tab will. I like the $'...' trick, though; now I've learned something new. :-)
    – L2G
    Nov 28, 2011 at 17:04
  • I've always learned it as $' '. It allows you to enter a string, but also have escaped characters. Double quoting literally prints \t If you leave off the quotes you get a tab character.
    – surfasb
    Nov 28, 2011 at 17:09

Try Control-v, then Tab. If you see the cursor tab over to the right, it worked.

According to the comment by Mark you can also try Control-v and then Control-i.

  • 1
    When I do this, I get a real tab (i.e. indentation).
    – Daniel Beck
    Nov 28, 2011 at 16:49
  • 3
    Oops. You're right. But it is entering the tab character, not doing command-line completion (which is what bash normally does with a tab). I tried sort -t " " (with the literal tab as described above) and it worked for me.
    – L2G
    Nov 28, 2011 at 16:57
  • Yep, that's what I meant by indentation. Didn't know a better term.
    – Daniel Beck
    Nov 28, 2011 at 17:13
  • 1
    Ctrl-v, Ctrl-i will also work (I found this answer here). Also, I think a Ctrl-q, Ctrl-v, Tab will work. Thanks L2G!
    – Mark
    Nov 28, 2011 at 17:20
  • BTW, I would love to accept both answers, but since I think surfasb's solution is more readable, I accepted hers. I like yours, too, though, so voted it up. Thanks!
    – Mark
    Nov 28, 2011 at 17:23

You can also use printf:

sort -t "$(printf "\t")"

Not like $'\t', printf use double quotes which allow you to use environment variables, like below:

char="\t" # any source just plain text

sort -t "$(printf "$char")"

Single quote is static and not flexible, though it's simple, you can choose based on your requirement.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.