J’ai le fichier texte suivant:
20170110 120000 'Location ' 67.57-164.07 30.0 3.78 128.6 0.00 270.0
Maintenant, ce que je veux, c’est insérer un espace entre 67.57 et -164.07 pour que le fichier texte ressemble maintenant à:
20170110 120000 'Location ' 67.57 -164.07 30.0 3.78 128.6 0.00 270.0
Je sais que je peux utiliser une commande awk ou sed et que j’ai consulté des informations à ce sujet, mais les informations disponibles étaient vagues et non spécifiques à ce que je cherchais. Avez-vous des suggestions sur ce que je pourrais faire pour obtenir les résultats souhaités?
Ajouter un espace avant le premier -
:
sed "s/-/ &/" file
Pour append un espace devant chaque -
non précédé par un espace en utilisant sed:
$ sed 's/\([^[:blank:]az]\)-/\1 -/g' file 20170110 120000 'Location-aware ' 67.57 -164.07 30.0 3.78 128.6 0.00 270.0
Edit : Changé [^ ]
à [^[:blank:]az]
pour suggestion par @ Neron-Le-Velu; D.
sed 's/^\('[^']*[[:blank:]]*\.[0-9]\{1,2\}\)-/\1 -/' YourFile
En supposant que l’espace doit être inséré après le premier nombre après la chaîne entre guillemets qui a au moins 1 valeur décimale directement suivie par un “-”
Ne sachant pas la valeur et le format est trop lazzy pour permettre des modifications spécifiques, vous devriez en assumer quelques-unes (comme la taille “field”, le format du champ, …)
Voici un petit morceau dans awk. Mais cela ne fait que travailler pour votre cas particulier car il y a une valeur fixe dans cette seule ligne.
'NR==2{gsub("-164.07"," -164.07")}{ print}' your_file