![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| het toevoegen van waarden met een lus | hcclnoodles | Programmeren en Shell Scripting | 1 | 05-27-2008 06:42 |
| vervanging van de kolom waarden. | charandevu | Programmeren en Shell Scripting | 6 | 04-02-2008 02:21 |
| Hoe lees ik de kolom en afdrukken van de waarden onder die kolom | gemini106 | Programmeren en Shell Scripting | 6 | 03-28-2008 07:05 |
| Hoe om te controleren Null-waarden in een bestand column van kolom of kolommen niet Null | Mandab | Programmeren en Shell Scripting | 7 | 03-15-2008 09:57 |
| vervanging van een kolom met de waarden van de eerste waarde in de kolom | sumeet | UNIX for Advanced & Expert Gebruikers | 3 | 02-06-2007 01:13 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hulp bij het toevoegen van positieve en negatieve waarden in een kolom
Hi Goeroes,
In mijn bestand heb ik een bedrag gebied van positie 74 tot 87, die waarden te beginnen met '+' en '-'. Ik wil toevoegen alle positieve waarden in een varible genaamd "krediet" en alle negatieve waarden in een variabele "DEBIT". Ik weet het, we kunnen gebruiken grep vast te stellen waarden met positieve en negatieve symptomen. Maar, weet niet, hoe voeg ze in 2 afzonderlijke variabelen in een script. Is er een manier om dat te doen op de opdrachtregel? Alle hulp zou veel gewaardeerd. Bedankt! In mijn bestand Bedrag veld heeft recht gerechtvaardigd waarden wilt, +1345778500000 -327800000 +642307000000 -4300000 +2308007 Deze waarden kijken hier links op het scherm, maar ze zijn eigenlijk rechts in mijn bestand. |
|
||||
|
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 de juiste motivering ... |
|
||||
|
Bedankt Jim McNamara voor het antwoord. Het werkt prima, als waarden links gerechtvaardigd. Maar, ik heb rechts waarden in het bestand. Dus, '+' of '-' kunt beginnen op elke positie 74 tot 87 bytes.
Hoe kunnen we gebruik "lengte" functie voor de behandeling van de waarden zoals links, zodat de belangrijkste ruimten kunnen worden genegeerd? |
|
||||
|
Ik denk dat, na het probleem, waar ik geen zorg over positie van '+' en '-' tekens in de waarden. Ik kan alleen maar controleren waarden> 0 en de rest, en volgens dat bedrag ze in 2 verschillende variabelen als hieronder:
awk '( value \u003d substr ($ 0,74,14) if (waarde> 0) (plus + \u003d waarde) else (min + \u003d waarde) ) END (print plus minus) 'bestandsnaam | lees credit debet |
|
||||
|
Volgende werken prima,
#! / bin / ksh credit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (waarde> 0) (credit + \u003d waarde)) END (print krediet)" bestandsnaam " debit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (waarde <0) (domiciliëring + \u003d waarde)) END (print debet)" bestandsnaam " exit 0; |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|