反转字符串| Shell编程

我们得到一个字符串,我们必须使用shell脚本以相反的顺序打印它。 请进来 菲科

null

例如:

Input : geeksforgeeks 
Output :skeegrofskeeg

算法

step 1:- Take user input in a string
step 2:- Findthe length of given string using length function
step 3:- Set i = length-1 and run loop till i <= 0
step 4:- echo the $i
step 5:- repeat step 3 and 4 till i==0
step 6:- end

// reverse a string using shell script
// reverse a string is in linux and unix
#!/ bin / bash
// reading a string
// using via user input
read - p "Enter string:" string
// getting the length of given string
len
= $
{
#string
}
// looping for reversing a string
// initialize i=len-1 for reversing a string and run till i=0
// printing in the reverse order of the given string
for ((i = $len - 1; i >= 0; i--))
do
// "${string:$i:1}"extract single single character from string.
reverse = "$reverse${string:$i:1}" done
echo "$reverse"


输出:

skeegrofskeeg

使用命令在shell脚本中反转字符串

  1. rev命令: 它用于反转文件中的行。该命令可以采用标准输入,如下所示。
    $ echo welcome | rev
    
    emoclew
    

    注意:rev命令并不是在所有版本的Unix中都存在。

  2. awk命令 : 使用substring函数,可以反转字符串:
    $ echo welcome | awk 
    '{ for(i = length; i!=0; i--)
    x = x substr($0, i, 1);
    }END
    {print x}'
    
    emoclew

    这种逻辑是任何编程语言中用于反转字符串的常见逻辑:从字符串的最后一个位置开始,一直打印字符,直到到达第一个位置。我们从最后一个位置开始在绳子上打圈,然后朝着开始的方向移动。length命令给出传递给它的参数的长度。在没有参数的情况下,length给出当前行的长度,即$0。awk中的substr命令一次提取一个字符,并附加到结果变量x上,该变量使用结束标签在末尾打印。

  3. sed命令 : 这里总共使用了2个sed命令。
    $ echo welcome | sed 's/./&/g' | tac | sed -e :a -e 'N;s///g;ta'
    
    emoclew

    要正确理解此命令,请在每个管道处将其分解并观察输出。第一个sed读取一个字符(.)并添加了一个新行()每个匹配字符后面的字符(&)。tac命令反转文件或标准输入的内容。第二个sed命令现在将所有行连接在一起。 注意:并非所有Unix版本中都有tac命令。

  4. Perl解决方案: 使用内置的perl函数reverse。
    $ echo welcome | perl -ne 'chomp;
    print scalar reverse;'
    
    emoclew

    反转函数反转列表中的所有元素。在这里使用的标量上下文中,它也反转字符串。chomp命令用于删除字符串中的换行符。

本文由 Ajay Puri(ajay0007) .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论。。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享