首页 > 系统服务 > 详细

Linux命令——字符串反转

时间:2020-04-07 19:09:06      阅读:102      评论:0      收藏:0      [点我收藏+]

一、rev命令

  1.字符串反转

  2.一个或多个文件的反转

echo "A B C D" | rev

技术分享图片

 二、sed 命令

echo ABCD | sed s/\(.\)\(.\)\(.\)\(.\)/\4\3\2\1/g
1 echo ABCD | sed -r s/(.)(.)(.)(.)/\4\3\2\1/

 技术分享图片

  (.)  正则表达式中的分组匹配,匹配之后再用具体位置参数 \4 \3 \2 \1来实现反转

   -r  使用-r参数,表示扩展正则表达式,就不用使用\来进行转义

1 echo 123456789 | sed -r /\n/!G;s/(.)(.*\n)/&\2\1/;//D;s/.//

技术分享图片

 三、awk命令

1 echo ABCD | awk {for(i=1;i<=length;i++) {line=substr($0,i,1) line}} END{print line}

技术分享图片

1)substr($i,0,1)表示取当前字符从索引i开始,取当前位

2)length 为当前字符串的长度

3)line=substr($i,0,1) line 将三个值分别保存在内存栈中

>substr($3,6,2)  表示从第三个字段里的第六个字符开始。截取两个字符结束

>substr($3,6)     表示从第三个字段里的第六个字符开始,直到结束

四、利用python

1 echo ABCD | python -c print raw_input()[::-1]

技术分享图片

[::-1]  实现字符串的反转

-c commond  表示运行时以命令性字符串提交python脚本

raw_input()  将管道传过来的值作为字符串输入

五、Perl

1 echo ABCD | perl -nle print scalar reverse $_

技术分享图片

1)print scalar reverse $_  将管道传过来的字符串传到默认标量$_,再用reverse取反

2) -e             让Perl程序可以在Perl命令行中运行,比如:  perl -e ‘print "Hello,World!\n"‘

3) -n            增加了循环功能,可以一行行处理文本

4) -l             用来给每行增加一个换行符"\n"

六、利用bash实现

1 echo ABCI | { read; for((i=${#REPLY};i>0;i--)) do echo -n ${REPLY:i-1:1};done;echo; }

技术分享图片

1) { cmd1;cmd2;cmd3;},在当前的Shell下顺序执行命令,第一条命令与{之间有空格,最后一个命令;结尾

2) read通过管道读取传过来的字符串,让其放置在默认的REPLY变量中,再通过循环${str:i:1}显示

Linux命令——字符串反转

原文:https://www.cnblogs.com/pegawayatstudying/p/12652426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!