![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| kombinere felter i to tekstfelter | shocker | Shell Programmering og Scripting | 3 | 01-16-2008 11:27 AM |
| cut: Få en eller to felter | maxvirrozeito | Shell Programmering og Scripting | 3 | 12-17-2007 11:58 AM |
| Cut Seneste 3 Fields | Bourne | Shell Programmering og Scripting | 4 | 01-11-2007 05:17 AM |
| Seneste felter | Khoomfire | UNIX for Advanced & Ekspertsøgning Brugere | 3 | 04-13-2006 06:03 PM |
| hvordan man kan skære felter | rajan_ka1 | Shell Programmering og Scripting | 1 | 12-29-2005 05:55 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Specificering og erstatte felter med awk
# cat BATCH007.TXT
01,661060052,061000104,081118,0915,07,80,1,2 / 99,,, 2 / Jeg har denne fil kaldet BATCH007.TXT. Jeg forsøger at ændre felterne 2 og 3 på linje 2 at have nuller. Sådan her: 01,661060052,061000104,081118,0915,07,80,1,2 / 99,0,0,2 / Jeg kan bruge disse kommandoer til at udskrive identificere de områder, der returnerer en tom værdi, som de skulle: hoved -2 BATCH007.TXT | tail-1l | awk '(FS \u003d","} (print $ 2)' hoved -2 BATCH007.TXT | tail-1l | awk '(FS \u003d","} (print $ 3)' Jeg tror, jeg er tæt på. Jeg har tilføjet en gusb til ovenstående kommando, men produktionen er forkert: hoved -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 Er der nogen forslag? |
|
||||
|
Hej, Jeg ved ikke præcis, hvad du forsøger at gøre, men hvis du kun ønsker at skifte linje 2 i din fil, hvilket skulle være nok: Code:
sed "/^99/s/,,,/,0,0,/g" file Hvilket betyder: gå til den linje, der starter med 99, og på denne linje erstatte tre kommas i række ved, 0,0, HTH Chris |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|