2011-01-17 2 views
1

замените "." [Точек], но оставить последнее: например: .txt [там может быть случайное число точек в строке, даже нулевой, я просто нужно последний]
заменяя точку в строке, но оставляя последний

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

@ user564530 - вы должны принять некоторые из ваши предыдущие вопросы, чтобы поощрить ваши шансы на этот вопрос – ajreal

ответ

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

Это работает только в том случае, если последняя точка фактически является последним символом, не так ли? – Jens

+0

@Jens: Вы правы! –

0

BASENAME один. two.three.txt .txt | СЕПГ -e 's /.// г' -e 's/$/TXT /.

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

В СЕПГ, с рекурсивными заменами:

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