1. 使用rev命令

在命令行反转字符串

[root@server1 myr]# echo "abcd" | rev
dcba
[root@server1 myr]# echo "abc" >file1
[root@server1 myr]# echo "qwe" >file2
[root@server1 myr]# rev file1 file2
cba
ewq

注意: rev 命令不仅仅适用于单个字符串,还用于多个字符串,单个文件,以及多个文件

  • 对多个字符串
[root@server1 myr]# echo "abcd" "asdf" "qwer"|  rev
rewq fdsa dcba
  • 对单个文件
[root@server1 myr]# cat myr
abcd
abc
abc
[root@server1 myr]# cat myr | rev
dcba
cba
cba
  • 对多个文件
[root@server1 myr]# echo "abc" >file1
[root@server1 myr]# echo "qwe" >file2
[root@server1 myr]# rev file1 file2
cba
ewq

补充 :tac 命令:是将 cat 反写过来,他的功能就跟 cat 相反, cat 是由“第一行到最后一行连续显示在屏幕上”,而 tac 则是“ 由最后一行到第一行反向在屏幕上显示出来 ”,可以自定义分割符号进行反转 tac -s " " 若不自定义分割符,默认为”\n“

- 举例
[root@server1 myr]# cat myr
abcd
abc
abc: 12
[root@server1 myr]# tac myr
abc: 12
abc
abcd
[root@server1 myr]# tac -s ":" myr
 12
abcd
abc
abc:

2. 使用sed 命令

[root@server1 myr]# echo "abcd" | sed 's/\(.\)\(.\)\(.\)\(.\)/\4\3\2\1/g'
dcba

[root@server1 myr]# echo "abcd" | sed -r 's/(.)(.)(.)(.)/\4\3\2\1/'
dcba
  • (.)为正则表达式中分组匹配,匹配到之后在用具体位置参数\4\3\2\1来实现反转
  • sed -r 为拓展正则表达式,不用加转译符号\

3. 使用perl 命令

[root@server1 myr]# echo "abcd" | perl -nle ' print scalar reverse $_'
dcba
  • print scalar reverse 将 管 道 传 递 过 来 的 字 符 串 传 到 默 认 标 量 _ 将管道传递过来的字符串传到默认标量 _,再用reverse取反

  • -e 让Perl程序可以在Perl命令行中运行,比如: perl -e ‘print “Hello,World!\n”’

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

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

4.使用awk命令

[root@server1 myr]# echo "abcd" | awk '{for(i=1;i<=length;i++){line=substr($0,i,1) line}} END{print line}'
dcba
  • 解释:

substr截取字符串

  • 返回从起始位置起,指定长度之子字符串;若未指定长度,则返回从起始位置到字符串末尾的子字符串。
  • 格式:
    substr(s,p) 返回字符串s中从p开始的后缀部分
    substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分
  • 例子:
[root@test ~]# echo "123" | awk '{print substr($0,1,1)}'
1

awk -F ',' '{print substr($3,6)}' 表示是从第3个字段里的第6个字符开始,一直到设定的分隔符","结束.
substr($3,10,8) 表示是从第3个字段里的第10个字符开始,截取8个字符结束.
substr($3,6) —> 表示是从第3个字段里的第6个字符开始,一直到结尾

length 字符串长度

  • length函数返回没有参数的字符串的长度。length函数返回整个记录中的字符数。
[root@test ~]# echo "123" | awk '{print length}'
3

5. 利用python

[root@server1 myr]# echo "abcd" | python -c "print raw_input()[::-1]"
dcba
  • Python中可以很方便实现字符串反转[::-1]

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

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐