shell中如何翻转一个字符串

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
gre_linewer
帖子: 180
注册时间: 2006-11-22 10:57

shell中如何翻转一个字符串

#1

帖子 gre_linewer » 2007-12-17 19:28

比如: 一个字符串string="gre linewer" ---->"rewenil erg"
不知shell中有现成的命令么?
在perl中是很容易的 $string="gre linewer"
$string=join( "",reverse(split("",$string)))
Ubuntu 8.04
IBM R52-18465DC
CPU:PM 1.73Ghz DDR2:768MB 533Mhz
INTEL 915GM/915PM
ATI Mobility Radeon X300 64MB
40G SATA
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#2

帖子 BigSnake.NET » 2007-12-17 19:31

man rev
man tac
上次由 BigSnake.NET 在 2007-12-17 19:34,总共编辑 1 次。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#3

帖子 晶晶守护神 » 2007-12-17 19:31

。。。。。。。。。。
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
gre_linewer
帖子: 180
注册时间: 2006-11-22 10:57

#4

帖子 gre_linewer » 2007-12-17 20:55

man了下,好笑都是对文件操作.但我的字符字符串就是shell脚本中的一个字符串而已
Ubuntu 8.04
IBM R52-18465DC
CPU:PM 1.73Ghz DDR2:768MB 533Mhz
INTEL 915GM/915PM
ATI Mobility Radeon X300 64MB
40G SATA
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#5

帖子 BigSnake.NET » 2007-12-17 20:56

gre_linewer 写了:man了下,好笑都是对文件操作.但我的字符字符串就是shell脚本中的一个字符串而已
echo "qwertyuiop" | rev
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
gre_linewer
帖子: 180
注册时间: 2006-11-22 10:57

#6

帖子 gre_linewer » 2007-12-17 21:12

多谢.太菜了.
是不是从文件里读取操作的,应该都可以这样操作吧.
比如sed awk等
ls *.c|sed -n -e 's/aa/bb/'
今天又学了一点技巧。再此谢ls

另外在问一个最近刚看到的例子
将系统种的用户名按字母顺序输出:
awk 'BEGIN {FS=":"} {print $1| "sort"}' /etc/passwd 知道是去除每行的第一个字段,但为啥sort要加引号,这点不是太明白
Ubuntu 8.04
IBM R52-18465DC
CPU:PM 1.73Ghz DDR2:768MB 533Mhz
INTEL 915GM/915PM
ATI Mobility Radeon X300 64MB
40G SATA
JIAN
帖子: 63
注册时间: 2007-01-13 14:55

#7

帖子 JIAN » 2007-12-21 22:40

因为sort是Shell命令
头像
gre_linewer
帖子: 180
注册时间: 2006-11-22 10:57

#8

帖子 gre_linewer » 2007-12-24 11:50

awk原意是对每一行都执行print $1|"sort"的啊。
那样写awk不就是对每一行进行排序么?而不是对取出所有第一个字段然后排序了。
这两个有啥区别?(第二个我能看懂)
awk 'BEGIN {FS=":"} {print $1| "sort"}' /etc/passwd
awk 'BEGIN {FS=":"} {print $1}' /etc/passwd|sort
有点小糊涂。。。。。。。。。。
Ubuntu 8.04
IBM R52-18465DC
CPU:PM 1.73Ghz DDR2:768MB 533Mhz
INTEL 915GM/915PM
ATI Mobility Radeon X300 64MB
40G SATA
回复