Je veux ajouter 2 lignes en fonction d'un motif
J'ai cette table p> Qu'est-ce que je cherche à ajouter une colonne de 7 $ avec le premier élément commence avec 0 et si le 2 $ est "-" alors ajuster -1 à partir de 7 $ d'autre ajout +1 dans la 7 $
Comme ceci: p> j'ai écrit ce p> Le problème avec mon code est que si je supprimai le Pour code> la condition tourne la totalité de 2 $ en et la totalité de 7 $ est -1 p> p>
3 Réponses :
Votre code ne fonctionne pas du tout. Il se plaint de quelques erreurs de syntaxe. En tout cas, je pense que vous avez omnuent le problème. Si je ne vous ai pas dit tort, la solution est plus simple:
awk 'BEGIN {v=0} {if ($2=="-") {v=v-1} else {v=v+1}; $7=v; print}'
Fonctionne parfaitement!!! Merci beaucoup ... vous avez totalement raison. La solution était vraiment simple. Mon problème est que je suis nouveau dans le "club" alors je suis encore en train d'apprendre.
Cela devrait être aussi simple que les suivants.
1 -1 513 1478 966 1 -1 2 -1 1594 2130 537 1 -2 3 +1 2171 2539 369 1 -1 4 -1 2587 3159 573 1 -2
Ce n'est pas exactement la sortie souhaitée. Peut-être que je n'ai pas expliqué ma cible correctement. J'essaie de "convertir" les signes + - Ajoutez "un et" moins "et à chaque fois pour ajouter ou soustraire 1 respectivement de la 2 $. Mais merci vraiment de me répondre !!!
@Kgee, je pensais que ma sortie est la même que celle des échantillons d'échantillons, pourriez-vous s'il vous plaît faire le Lemme en savoir plus sur la même chose où cela n'a pas fonctionné.
Sûr! Votre code convertit en effet le + - au +1 -1 respectivement, mais il n'a pas ajouté les valeurs de 2 $ (la première valeur à la seconde au troisième etc.). En outre convertit les valeurs de 4 à - 4 $ (ajoutez des valeurs A à ma 4ème colonne) et ajoutez la première valeur de 4 $ à la suivante. En d'autres termes, je veux obtenir ce que vous avez fait dans les 4 $ aux 2 $ sans convertir toutes les valeurs à moins. Mais vraiment une fois de plus, merci de votre temps.
Utilisation de l'astuce @ RavindersingH13
$ awk '{print $0 "\t" (c+=$2"1")}' file 1 - 513 1478 966 1 -1 2 - 1594 2130 537 1 -2 3 + 2171 2539 369 1 -1 4 - 2587 3159 573 1 -2
fonctionne superfine, et c'est un code vraiment simple. J'ai édité des bits allumés alors que mon objectif final était d'ajouter les valeurs de 5 $ en même temps avec 2 $ et de votre code que je l'ai fait comme je le souhaite. ;-). Merci beaucoup!!!!