分页: 1 / 1

shell中如何翻转一个字符串

发表于 : 2007-12-17 19:28
gre_linewer
比如: 一个字符串string="gre linewer" ---->"rewenil erg"
不知shell中有现成的命令么?
在perl中是很容易的 $string="gre linewer"
$string=join( "",reverse(split("",$string)))

发表于 : 2007-12-17 19:31
BigSnake.NET
man rev
man tac

发表于 : 2007-12-17 19:31
晶晶守护神
。。。。。。。。。。

发表于 : 2007-12-17 20:55
gre_linewer
man了下,好笑都是对文件操作.但我的字符字符串就是shell脚本中的一个字符串而已

发表于 : 2007-12-17 20:56
BigSnake.NET
gre_linewer 写了:man了下,好笑都是对文件操作.但我的字符字符串就是shell脚本中的一个字符串而已
echo "qwertyuiop" | rev

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

另外在问一个最近刚看到的例子
将系统种的用户名按字母顺序输出:
awk 'BEGIN {FS=":"} {print $1| "sort"}' /etc/passwd 知道是去除每行的第一个字段,但为啥sort要加引号,这点不是太明白

发表于 : 2007-12-21 22:40
JIAN
因为sort是Shell命令

发表于 : 2007-12-24 11:50
gre_linewer
awk原意是对每一行都执行print $1|"sort"的啊。
那样写awk不就是对每一行进行排序么?而不是对取出所有第一个字段然后排序了。
这两个有啥区别?(第二个我能看懂)
awk 'BEGIN {FS=":"} {print $1| "sort"}' /etc/passwd
awk 'BEGIN {FS=":"} {print $1}' /etc/passwd|sort
有点小糊涂。。。。。。。。。。