待处理字符串
independent
index
……
目的:缩掉最后一个字符
处理方式
expr independent : '\(.*\).'
结果正常,返回expr independen
expr index : '\(.*\).'
结果异常,返回值为0;
猜想index为该函数的关键词,故请教各位高人,如何转义让expr将index当作普通字符处理?
谢谢!
求助:文本处理之关键词转义(已解)
-
- 帖子: 40
- 注册时间: 2012-01-28 21:27
求助:文本处理之关键词转义(已解)
上次由 halfwolf 在 2012-02-14 9:14,总共编辑 1 次。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 求助:文本处理之关键词转义
echo index|sed 's/.$//'
str=index;echo ${str:0:${#str}-1}
#都比expr好。
str=index;echo ${str:0:${#str}-1}
#都比expr好。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
- josephyoung
- 帖子: 158
- 注册时间: 2011-11-05 18:53
- 来自: 南极圈
Re: 求助:文本处理之关键词转义
man expr 可以看到有"+"这个参数
所以,你要的命令是 expr + index : '\(.*\).'+ TOKEN
interpret TOKEN as a string, even if it is a
keyword like `match' or an operator like `/'
-
- 帖子: 40
- 注册时间: 2012-01-28 21:27
Re: 求助:文本处理之关键词转义
谢谢josephyoung,
expr + index : '\(.*\).'是我所题问题的答案;
谢谢fnan,
你提供的两种做法均可以,我最终选择${str:0:${#str}-1},因为该方法更简介明了。
expr + index : '\(.*\).'是我所题问题的答案;
谢谢fnan,
你提供的两种做法均可以,我最终选择${str:0:${#str}-1},因为该方法更简介明了。