HowTo: Reverse a String In Unix / Linux Shell?

by on July 6, 2012 · 3 comments· last updated at July 6, 2012

How do I reverse lines of a file or files under Linux or Unix like operating systems?

You can use any one of the following method.

Say hello to rev command

The rev command copies the specified files, reversing the order of characters in every line. If no files are specified, the standard input (from keyboard) is read. If rev command is installed use it as follows:

 
echo "nixcraft" | rev
 

Sample outputs:

tfarcxin

You can use the following syntax too:

 
rev<<<"This is a test"
 

Sample outputs:

tset a si sihT

Perl script example to reverse a string

You can use the perl and syntax is:

 
perl -ne 'chomp;print scalar reverse . "\n";'<<<"nixcraft"
 

OR

 
echo 'nixcraft' | perl -ne 'chomp;print scalar reverse . "\n";'
 

Bash shell script example to reverse a string

You can use bash and sample bash script is:

 
#!/bin/bash
input="$1"
reverse=""
 
len=${#input}
for (( i=$len-1; i>=0; i-- ))
do
	reverse="$reverse${input:$i:1}"
done
 
echo "$reverse"
 

Run it as follows:
./script nixcraft
Sample outputs:

tfarcxin


You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

{ 3 comments… read them below or add one }

1 whyqaz July 9, 2012 at 9:16 am

What does ‘<<<' do?
Or what is it?

Reply

2 Paulo Freitas July 9, 2012 at 5:58 pm

Python equivalent:

echo foo | python -c 'import sys;print(sys.stdin.read().strip()[::-1])'
python -c 'import sys;print(sys.stdin.read().strip()[::-1])' <<< foo

PHP equivalent:

echo foo | php -r 'print strrev(trim(fgets(STDIN)));'
php -r 'print strrev(trim(fgets(STDIN)));' <<< foo

Reply

3 Vivek Gite July 9, 2012 at 9:06 pm

@whyqaz
See Here strings.

Hope this helps!

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as: , , , , , , , ,

Previous Faq:

Next Faq: