替换字符串中的点,但留下最后一个

时间:2011-01-17 15:50:27

标签: linux

替换“。” [点],但留下最后一个:例如:.txt [字符串中可能有随机数点,甚至为零,我只需要最后一个]

$ echo 'someth.ing.something.txt' | SOMEMAGIC
someth-ing-something.txt

4 个答案:

答案 0 :(得分:1)

$ echo 'toto.tata.titi.' | sed 's/\.\([^$]\)/-\1/g'
toto-tata-titi.

答案 1 :(得分:1)

echo 'someth.ing.something.txt' | sed 's/\./-/g' | sed 's/-\([^-]*$\)/.\1/g'

答案 2 :(得分:0)

basename one.two.three.txt .txt | sed -e's /.// g'-e's / $ /.txt /'

答案 3 :(得分:0)

在sed中,使用递归替换:

sed ':a /\..*\./ {s/\./-/}; t a'