分页: 1 / 1

求助:文本处理之关键词转义(已解)

发表于 : 2012-02-13 17:37
halfwolf
待处理字符串
independent
index
……
目的:缩掉最后一个字符
处理方式
expr independent : '\(.*\).'
结果正常,返回expr independen

expr index : '\(.*\).'
结果异常,返回值为0;

猜想index为该函数的关键词,故请教各位高人,如何转义让expr将index当作普通字符处理?

谢谢!

Re: 求助:文本处理之关键词转义

发表于 : 2012-02-13 18:54
fnan
echo index|sed 's/.$//'
str=index;echo ${str:0:${#str}-1}
#都比expr好。

Re: 求助:文本处理之关键词转义

发表于 : 2012-02-13 20:09
josephyoung
man expr 可以看到有"+"这个参数
+ TOKEN
interpret TOKEN as a string, even if it is a

keyword like `match' or an operator like `/'
所以,你要的命令是 expr + index : '\(.*\).'

Re: 求助:文本处理之关键词转义

发表于 : 2012-02-14 9:13
halfwolf
谢谢josephyoung,
expr + index : '\(.*\).'是我所题问题的答案;

谢谢fnan,
你提供的两种做法均可以,我最终选择${str:0:${#str}-1},因为该方法更简介明了。