您的位置:首页 > 运维架构 > Shell

Shell中字符串反转的几种技巧

2016-07-09 12:22 344 查看
方法一利用rev命令



备注:

1) rev命令可以对字符串进行反转

2) rev命令还可以对一个或多个文件进行反转

方法二利用sed命令s参数来替换

1) 对字符串长度比较小的转换






[b]2) 对字符串长度比较大的转换
[/b]

[b]


[/b]

备注:


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

2) 同时使用-r参数,表示扩展正则表达式,那样的话,就无需使用反斜杠来转译了

【[b]方法三利用awk命令
[/b]

[b]


[/b]

备注:

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

2) length即当前字符串的长度,即3

3) line=substr($0,i,1) line;将三个值分别保持在内存栈中,到时候打印出来就成CBA

substr($3,6,2)   --->  表示是从第3个字段里的第6个字符开始,截取2个字符结束.

substr($3,6)     --->  表示是从第3个字段里的第6个字符开始,一直到结尾

方法四】利用python工具






备注:

1) 在Python中可以很方便实现字符串反转[::-1]

2) -c command: 表示运行时以命令性字符串提交Python脚本

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

方法五】利用Perl工具






[b]备注:
[/b]

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

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

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

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

方法六】利用bash实现






备注:

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

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

方法七】利用脚本实现











备注:

1) ${STR:i:1},字符串取索引,长度为,分别取到D,C,B,A

2) -n --> 取消换行符 

3) -e --> 对换行符等特殊字符进行转译 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: