我们得到一个字符串,我们必须使用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脚本中反转字符串
- rev命令: 它用于反转文件中的行。该命令可以采用标准输入,如下所示。
$ echo welcome | rev emoclew
注意:rev命令并不是在所有版本的Unix中都存在。
- 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上,该变量使用结束标签在末尾打印。
- sed命令 : 这里总共使用了2个sed命令。
$ echo welcome | sed 's/./&/g' | tac | sed -e :a -e 'N;s///g;ta' emoclew
要正确理解此命令,请在每个管道处将其分解并观察输出。第一个sed读取一个字符(.)并添加了一个新行()每个匹配字符后面的字符(&)。tac命令反转文件或标准输入的内容。第二个sed命令现在将所有行连接在一起。 注意:并非所有Unix版本中都有tac命令。
- Perl解决方案: 使用内置的perl函数reverse。
$ echo welcome | perl -ne 'chomp; print scalar reverse;' emoclew
反转函数反转列表中的所有元素。在这里使用的标量上下文中,它也反转字符串。chomp命令用于删除字符串中的换行符。
本文由 Ajay Puri(ajay0007) .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论。。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END