У меня есть файл, как это:
2018.01.02;1.5;comment 1
2018.01.04;2.75;comment 2
2018.01.07;5.25;comment 4
2018.01.09;1.25;comment 7
Я хочу заменить все точки .
во втором столбце запятой, ,
как если бы я указывал, sed 's/\./\,/g' file
как использовать sed
или предпочтительно awk
применять это только для второго столбца, поэтому мой вывод будет выглядеть следующим образом:
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7
text-processing
awk
sed
натх
источник
источник
заменить третье вхождение точки
источник
cat
... Почему бы не простоsed 's/\./,/3' file
? (Кроме того, запятую не нужно экранировать.)cat
не обязательно будет бесполезным здесь. Это позволило бы операции использовать 2 ядра.cat
, кроме использования ресурсов? Может быть , чтобы обеспечить немного буфера, но это намерение должно быть лучше выражены с помощью инструмента , какbuffer
чемcat
.Сделано по методу ниже, используя awk
Команда:
awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename
вывод
источник