![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| l'ajout de valeurs avec une boucle | hcclnoodles | De programmation et de script Shell | 1 | 05-27-2008 06:42 AM |
| remplacer les valeurs de colonne. | charandevu | De programmation et de script Shell | 6 | 04-02-2008 02:21 AM |
| comment lire la colonne et d'imprimer les valeurs sous cette colonne | gemini106 | De programmation et de script Shell | 6 | 03-28-2008 07:05 AM |
| Comment faire pour vérifier des valeurs Null dans un fichier, colonne par colonne, si les colonnes ne sont pas NULL | Mandab | De programmation et de script Shell | 7 | 03-15-2008 09:57 AM |
| remplacer une colonne avec les valeurs de la première valeur dans la colonne | Sumeet | UNIX for Advanced & Expert Users | 3 | 02-06-2007 01:13 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Aide en ajoutant des valeurs négatives et positives dans une colonne
Salut Gurus,
Dans mon dossier, j'ai un montant domaine de la mesure 74 à 87, qui contient les valeurs en commençant par '+' ainsi que '-'. Je tiens à ajouter toutes les valeurs positives dans une variable appelée «crédit» et de toutes les valeurs négatives dans une variable "PRÉLEVER". Je sais, nous pouvons utiliser grep d'identifier les valeurs avec des signes positifs et négatifs. Mais, ne savent pas comment les ajouter séparé en 2 variables dans un script. Yat-il un moyen de le faire sur la ligne de commande? Toute aide serait bien appriciated. Merci! Dans mon fichier Montant domaine a justifié à droite des valeurs similaires, +1345778500000 -327800000 +642307000000 -4300000 +2308007 Ces valeurs oeil gauche à l'écran, mais ils sont réellement justifiées à droite dans mon dossier. |
|
||||
|
Code:
awk ' {
value=substr($0,74,14)
while (substr(value,1,1) == " " ) {value=substr(value,2)}
if(value>0) { plus+=value}
else {minus+=value}
}
END { print plus, minus} ' filename | read credit debit
.. messed up justification du droit ... |
|
||||
|
Merci Jim McNamara de la réponse. Cela fonctionne très bien, quand les valeurs sont justifiés à gauche. Mais, j'ai justifié à droite les valeurs dans le fichier. Ainsi, '+' ou '-' peut commencer à n'importe quel poste de 74 à 87 octets.
Comment pouvons-nous utiliser «longueur» fonction de traiter les valeurs de gauche, de sorte que les espaces en tête peut être ignoré? |
|
||||
|
Je pense que, à la suite permettra de résoudre le problème, où je ne se soucient pas de position de '+' et '-' dans le signe des valeurs. Je peux vérifier les valeurs> 0 et le reste, et en fonction de cette somme dans les 2 variables ci-dessous:
awk '( value \u003d substr ($ 0,74,14) if (value> 0) (\u003d + plus value) else (moins + \u003d value) ) END (print plus, moins) 'nom_fichier | lire débit de crédit |
|
||||
|
Suite fonctionne bien,
#! / bin / ksh credit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (value> 0) (crédit + \u003d value)) END (print crédit)' filename» debit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (value <0) (\u003d valeur de débit +)) END (print débit)' filename» exit 0; |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|