我需要将最后一个点替换为字符' - '在字符串中。
SELECT DISTRIBUTOR,
MIN(MOVIE_TITLE) KEEP (DENSE_RANK FIRST ORDER BY MONEY_MADE ASC) AS MOVIE_TITLE
FROM MOVIE
GROUP BY DISTRIBUTOR;
DISTRIBUTOR MOVIE_TITLE
Fox Aliens
Orion RoboCop
使用以下表达式:
KEEP
我希望得到:
RANK
但是我得到了
# a='2.5.2.pl'
我注意到只有当我需要从头到尾替换点时它才起作用。为什么会这样? 当然我可以使用像awk这样的外部程序来解决这个问题,但我只需要使用bash解决问题。
感谢您的建议!
答案 0 :(得分:5)
答案 1 :(得分:0)
我的方式有点hacky并且使用rev
但我测试了它并且它有效!
echo "$(_b=$(echo "$a" | rev); _b=${_b/./-}; echo "$_b" | rev)"
基本上,我只是颠倒了字符顺序,因此最后.
是第一个,然后使用${var/./-}
用短划线替换点,最后再次颠倒了字符的顺序。