分页: 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
有点小糊涂。。。。。。。。。。