Linux命令——字符串反转

一、rev命令

  1.字符串反转

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

echo "A B C D" | rev

 二、sed 命令

echo 'ABCD' | sed 's/(.)(.)(.)(.)/4321/g'
1 echo 'ABCD' | sed -r 's/(.)(.)(.)(.)/4321/'

 

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

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

1 echo '123456789' | sed -r '/
/!G;s/(.)(.*
)/&21/;//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! "'

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

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

六、利用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}显示

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