![]() |
|
|
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 |
| combineren van velden in twee tekstvelden | shocker | Programmeren en Shell Scripting | 3 | 01-16-2008 11:27 |
| gesneden: krijgen een of twee velden | maxvirrozeito | Programmeren en Shell Scripting | 3 | 12-17-2007 11:58 |
| Snijd Laatste 3 velden | bourne | Programmeren en Shell Scripting | 4 | 01-11-2007 05:17 |
| Laatste velden | Khoomfire | UNIX for Advanced & Expert Gebruikers | 3 | 04-13-2006 06:03 PM |
| Hoe te knippen velden | rajan_ka1 | Programmeren en Shell Scripting | 1 | 12-29-2005 05:55 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Specificeren en vervanging van de velden met awk
# cat BATCH007.TXT
01,661060052,061000104,081118,0915,07,80,1,2 / 99,,, 2 / Ik heb dit bestand genaamd BATCH007.TXT. Ik probeer velden 2 en 3 wijzigen op lijn 2 tot en nullen hebben. Zoals: 01,661060052,061000104,081118,0915,07,80,1,2 / 99,0,0,2 / Ik kan deze opdrachten gebruiken om afdrukken van de velden, die een lege waarde terug te identificeren, zoals ze zouden moeten: hoofd -2 BATCH007.TXT | tail-1L | awk '(FS \u003d","} (print $ 2)' hoofd -2 BATCH007.TXT | tail-1L | awk '(FS \u003d","} (print $ 3)' Ik denk dat ik dichtbij. Ik voegde een GUSB aan de bovenstaande commando, maar de output is onjuist: hoofd -2 BATCH007.TXT | tail-1L | awk-F "," '(gsub ($ 2, "0");) print' BATCH007.TXT> D.new $ cat D.new 01,661060052,0,081118,0915,07,80,1,2 / 09090,0,0,020 / 0 Heeft iemand suggesties? |
|
||||
|
Hoi, Ik weet niet precies wat je probeert te doen, maar als je alleen wilt lijn 2 van je bestand te veranderen, moet dit genoeg zijn: Code:
sed "/^99/s/,,,/,0,0,/g" file Dat betekent: ga naar de lijn te beginnen met 99 en op deze lijn vervangende drie kommas in rij door, 0,0, HTH Chris |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|