Точка - это специальный символ, означающий «соответствовать любому символу».
$ sed s/\\.// temp
225
Вы могли бы подумать, что могли бы сделать sed s/\.// temp
, но ваша оболочка избежала этого одиночного обратного слеша и передала бы s/.//
в sed. Итак, вам нужно поместить два обратных слеша для передачи буквального обратного слеша в sed, который будет трактовать \.
как буквальную точку. Или вы можете заключить в кавычку команду для сохранения буквального обратного слеша:
$ sed "s/\.//" temp
225
Причина, по которой вы получаете 2,5, когда вы делаете s/.//
, заключается в том, что точка соответствует первому символу в файле и удаляет его.