J'ai un fichier comme celui-ci:
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
Je veux remplacer tous les points .
de la deuxième colonne par une virgule ,
comme je le ferais avec la sed 's/\./\,/g' file
façon dont je peux utiliser sed
ou de préférence awk
appliquer uniquement cela pour la deuxième colonne, donc ma sortie ressemblerait à ceci:
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
nath
la source
la source
remplacer la troisième occurrence du point
la source
cat
... Pourquoi pas seulementsed 's/\./,/3' file
? (De plus, la virgule n'a pas besoin d'être échappée.)cat
ne serait pas nécessairement inutile ici. Cela permettrait à l'opération d'utiliser 2 cœurs.cat
, autre que l'utilisation des ressources? Peut-être pour fournir un petit tampon, mais alors cette intention devrait être mieux exprimée par un outil commebuffer
que parcat
.Fait par la méthode ci-dessous en utilisant awk
Commander:
awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename
production
la source