Если у вас есть текстовый файл и вы хотите найти и заменить часть соответствующего шаблона, как бы вы сделали это с perl one-liners, sed или python?
Например:
"653433,78"
совпадать с [0-9]{6},[0-9]{2}
.
Изменить ,
чтобы .
,
Если у вас есть текстовый файл и вы хотите найти и заменить часть соответствующего шаблона, как бы вы сделали это с perl one-liners, sed или python?
Например:
"653433,78"
совпадать с [0-9]{6},[0-9]{2}
.
Изменить ,
чтобы .
,
Вы можете использовать пронумерованные подгруппы. то есть:
Найти:
([0-9]{6}),([0-9]{2})
Заменить:
\1.\2
Пример в Python:
import re
inp = '653433,78'
out = re.sub(r'([0-9]{6}),([0-9]{2})', r'\1.\2', inp)
print out
Это даст вам:
>>>'653433.78'
Вы можете захватить совпавшую часть вокруг шаблона, который хотите заменить, и затем повторно использовать его в операторе замены.
cat yourfile | perl -p -e "s/([0-9]{6}),([0-9]{2})/\\1.\\2/g"
Также может быть использовано более сложное решение с lookahead и lookbacks (но это не будет поддерживать символы подстановки, такие как * и + для вашего шаблона)
cat yourfile | perl -p -e "s/(?<=[0-9]{6}),(?=[0-9]{2})/./g"