Je veux ajouter un à la dernière valeur à la fin d'une chaîne dans sed. Je pense le long des lignes deune ligne en utilisant sed et bc ensemble?
cat 0809_data.csv |sed -e 's/\([0-9]\{6\}\).*\(,[^,]*$\)/\1\2/g'| export YEARS = $(echo `grep -o '[^,]*$' + 1`|bc)
par exemple 123456, kjhsflk, lksjgrlks, 2,8 -> 123456, 3,8
Serait-ce plus raisonnable/faisable dans awk?
Cela a l'air génial. Je vous remercie. cat only_0809__data.csv | sed -e 's/\ ([0-9] \ {6 \} \). * \ (, [^,] * $ \)/\ 1 \ 2/g' | awk 'BEGIN {FS = ","} {OFS = ","} {print $ 1, $ 2 + 1} – Donnied
@Donnied: 'OFS' devrait être dans le premier ensemble d'accolades (celles qui appartiennent à' BEGIN') donc il est seulement exécuté une fois au lieu de chaque ligne. Il n'est pas nécessaire d'utiliser 'cat'. Vous pouvez faire les choses regex dans le même appel à AWK, en utilisant 'gsub' peut-être, au lieu d'utiliser' sed'. –