The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
endring tillatelse via FTP panknil Shell programmering og Skripting 3 11-07-2007 08:08
Endring BrukerID og Endre og GIDen deal732 Shell programmering og Skripting 2 04-18-2007 11:09
Endre rekkefølgen bruker sed venu_nbk UNIX for Dummies Spørsmål og svar 9 07-29-2006 06:03
Endring Brukere Bab00shka Shell programmering og Skripting 2 08-01-2003 05:44
Endre IP-adresser Hordak UNIX for Dummies Spørsmål og svar 2 08-03-2002 01:42

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 10-04-2008
jolecanard jolecanard is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 36
Unhappy awk endrer min FS!

Hei,

Her er (en del) av fil jeg ønsker å endre. Merk de tre mellomrom før "3" (kan være "2" eller "0" også).

Code:
   3 621530  1.1935E-02 631530  1.1293E+01 641530  1.1117E-02 571540  4.4419E-14
   3 581540  2.6670E-10 591540  3.8610E-09 601540  1.1016E-06 611540  3.2618E-06
   3 611541  6.5572E-07 621540  9.8307E+00 631540  3.1177E+00 641540  1.4615E+00
   3 571550  0.0000E+00 581550  8.8139E-12 591550  1.0739E-09 601550  2.5639E-07
   3 611550  1.1011E-06 621550  3.6787E-05 631550  3.4821E+00 641550  3.1855E+00
   3 641551  0.0000E+00 581560  9.4585E-13 591560  7.5358E-11 601560  1.2023E-07
   3 611560  1.7968E-07 621560  5.4237E-04 631560  3.0054E-02 641560  6.5687E+00
   3 581570  2.3926E-14 591570  9.9322E-12 601570  4.3929E-09 611570  4.6793E-07
   3 621570  5.5911E-06 631570  6.3564E-04 641570  3.2355E+00 591580  2.8608E-13
Jeg ønsker å finne noen ID (eg. 621530) og endre verdien følge den.

Jeg bruker dette skriptet:
Code:
VALUE=".........."
awk -v var="$VALUE" 'BEGIN{}
NR==FNR{a[$0]=$0; next}
{for(i=2;i<9;i+=2)if($i in a){$(i+1)=var}}
#{$1="   "$1}
{print}' ID_to_be_changed my_file
Problemet er at det fjerner tre plasser foran rekka hvis den endres noe i raden ... fjerner kommentert linje løser problemet.
Men jeg vet ikke hvordan jeg skal beholde samme antall mellomrom mellom radene: 2 mellomrom mellom ID og følgende verdi, og 1 plass mellom en verdi og ID etter at (skriptet ovenfor slår alt i én plass).

Kan noen hjelpe meg?
 

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 05:41.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0