#1 Le 25/04/2019, à 12:04
- baloovsrayman
[Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
Bonjour ,
Je fait la découverte un peu la commande sed qui est assez complexe:
J'aimerais quelle modifie un fichier assez simple organiser comme cela :
texte , 1325
autretexte , 3245
ect...
Je lui demande la chose suivante
récupérer le nombre faire un calcul avec ( ici c'est pouvoir mettre un pourcentage ) et le replacer ensuite au même endroit
exemple
texte , 15
autretexte , 30
voilas ma fonction ( qui ne marche pas bien entendu )
percent_calc(){
sum_carac=`wc -m "$1"`
sum_carac=${sum_carac//${1}/}
sum_carac=$(( sum_carac / 100 ))
echo "$sum_carac"
sed "s/^[0-9]+([0-9])?+/$(( & / '${sum_carac}'))/e" <<< ${1}
}
Et voilas de quoi il se plaint :
39401
ligne 229: & / '39401' : erreur de syntaxe : opérande attendu (le symbole erroné est « & / '39401' »)
D'avance merci pour toute aide
Dernière modification par baloovsrayman (Le 25/04/2019, à 21:02)
Hors ligne
#2 Le 25/04/2019, à 18:05
- Hizoka
Re : [Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
Salut
sum_carac=`wc -m "$1"`
=>
sum_carac=$(wc -m "$1")
Commençons par respecter les bonnes pratiques.
Je pense que lui demande quelque chose de trop compliqué.
Fais le en 3 étapes :
- Variable récupérant la valeur à traiter
- Faire le calcul
- Utiliser sed pour modifier la valeur par la nouvelle
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 25/04/2019, à 18:24
- Watael
Re : [Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
perso, je passerais tout de suite à awk.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#4 Le 25/04/2019, à 19:03
- baloovsrayman
Re : [Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
OK,
- je vais m'adapter au bonne pratique
Je vais voir quelle solution me semble la plus sympas je ne connais pas le fonctionnement ni la syntaxe de awk ( je vais lire le manuel ) ou si vous avez un cour en accéléré je prend.
Sinon je vais procéder en plusieurs étapes je mettrai la solution que je trouve dans la discutions
merci
Hors ligne
#5 Le 25/04/2019, à 21:01
- baloovsrayman
Re : [Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
perso, je passerais tout de suite à awk.
Voila effectivement pour ce genre de chose awk est plus approprier même si la commande n'est pas simple
Donc pour ce cas particulier j'ai trouver mes renseignement la :
https://connect.ed-diamond.com/GNU-Linu … e-fichiers
Voilas du coup à quoi ressemble ma commande :
awk 'BEGIN{FS=","} {print ($2*100)/3600 "%"}' fichier_temp
mon séparateur dans le fichier est , je 'print' le calcul en ajoutant le % en utilisant mon fichier_temp comme source.
Hors ligne
#6 Le 25/04/2019, à 22:53
- Watael
Re : [Résolut]SED?: récupéré, calculer et remplacer par le résultat [bash]
gawk (à partir de la version 4.1) peut effectuer le remplacement "directement" (-i inplace)dans le fichier source, comme sed.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne