LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 894|回复: 7

请教:命令前\的意思和i如何用cut从后面开始截取5个字符

[复制链接]
发表于 2007-2-6 13:13:27 | 显示全部楼层 |阅读模式
1,经常看到一些命令前面有反斜杠\,比如
   \rm -fr $LOGDIR
  请问那个\是什么意思,是不是 表示把错误进行重定向的简单写法?

2.如何用cut实现从后面截取数个字符,比如STR=123456789,我想取得后5个数字56789如何实现?

  我看cut里面起始位置都是从前开始的,如果想要截取后面的字符就要先计算出字符长度,然后剪去需要的字符,我是这样写的。
STR="123456789"

echo $STR | cut -c`expr ${#STR} - 5 + 1`-

但是这样有点麻烦,有更简单点的吗?
发表于 2007-2-6 14:04:35 | 显示全部楼层
第一个
比如你alias rm='rm -i'
\rm就可以不去使用这个alias,反斜杠就是忽略别名。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-7 09:01:36 | 显示全部楼层
谢谢,不过

第二个问题没有人知道吗
回复 支持 反对

使用道具 举报

发表于 2007-2-7 09:15:30 | 显示全部楼层
应该没有更简单的了,同样的思路你可以用${str:pos:len}来做
回复 支持 反对

使用道具 举报

发表于 2007-2-12 06:38:43 | 显示全部楼层
Post by xred

2.如何用cut实现从后面截取数个字符,比如STR=123456789,我想取得后5个数字56789如何实现?

echo ${STR: -5}
回复 支持 反对

使用道具 举报

发表于 2007-2-12 09:46:13 | 显示全部楼层
楼上的命令是做变量测试的

截取的话可以这样
$ a=1234567

davi@davistar ~
$ echo ${a#*5}
67
回复 支持 反对

使用道具 举报

发表于 2007-2-13 02:30:57 | 显示全部楼层
Post by davi
楼上的命令是做变量测试的

注意我的冒号和减号之间有空格。

Post by davi
截取的话可以这样

另外注意审题。。。
回复 支持 反对

使用道具 举报

发表于 2007-2-13 12:04:07 | 显示全部楼层
:p  sorry 嘿嘿
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表