Linux命令——字符串反转

一、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}显示

posted @ 2020-04-07 18:19  pegawayatstudying  阅读(1863)  评论(0编辑  收藏  举报