The UNIX and Linux Forums  
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
változó engedélyt használó FTP panknil Shell programozás és Scripting 3 11-07-2007 08:08 PM
Felhasználóazonosító változó és a változó csoport és GID deal732 Shell programozás és Scripting 2 04-18-2007 10:09 AM
Megváltoztatása érdekében használja sed venu_nbk A UNIX a dummies Kérdések és válaszok 9 07-29-2006 05:03 PM
A változó felhasználói Bab00shka Shell programozás és Scripting 2 08-01-2003 04:44 AM
A változó IP Hordak A UNIX a dummies Kérdések és válaszok 2 08-03-2002 12:42 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 10-04-2008
jolecanard jolecanard is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 36
Unhappy awk változó én FS!

Hello there,

Itt van (egy része) a fájl akarok változni. Megjegyzés: A három terek, mielőtt a "3" (ez az "2" vagy "0" is.)

Kód:
   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
Azt akarom, hogy néhány azonosítója (pl.: 621530), és változtassa meg az értéket követően.

Én ezzel a script:
Kód:
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
A probléma az, hogy megszünteti a három terek előtt a sorban, ha változik valami a sorban ... eltávolítása kommentálta sor megoldja a problémát.
Azonban nem tudom, hogyan kell tartani az azonos számú szóközöket a sorok között: 2 terek között az azonosítót és a következő értéket, és 1 tér közötti értéket, és a név után, hogy (a fenti szkriptet megfordulásakor mindent egyetlen hely).

Tud valaki segíteni?
  #2 (permalink)  
Old 10-04-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderátor (az oktató)
  
 

Join Date: Jun 2008
Helyszín: India
Hozzászólások: 1390
meg OFS \u003d "" nem minden a tereket akarunk
  #3 (permalink)  
Old 10-04-2008
jolecanard jolecanard is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 36
Én már próbáltam, hogy ...
A probléma tehát az, hogy minden oszlopok sortávolságú csak egy hely!

Azt akarom, hogy a struktúra:
Kód:
 
"   "3" "xxxxxx"  "x.xxxxExx" "xxxxxx"  "x.xxxxExx"...
  #4 (permalink)  
Old 10-04-2008
jolecanard jolecanard is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 36
Thumbs up

Most, az egyetlen megoldás már a következő:

Kód:
 
VALUE=".........."
awk -v var="$VALUE" 'BEGIN{FS=OFS=" "}
NR==FNR{a[$0]=$0; next}
{for(i=4;i<9;i+=2)if($i in a){$(i+1)=var}}
{for(i=4;i<9;i+=2)if($i in a){print "  ",$1,$2," "$3,$4," "$5,$6," "$7,$8," "$9;next}}
{print}' ID_to_be_changed my_file
Ugyanis a pár sort, néhány értékek nincsenek formában "x.xxxxExxx, de kevesebb karaktert (pl." 0,0 "). Ezután a hiányzó karaktereket a "terek" annak érdekében, hogy a kiigazításokról:

Kód:
   2 982520  1.6134E-14 982530  1.7241E-17 982540  3.4164E-20 982550  1.2285E-24
   2 992530  1.8708E-17 992541  6.2076E-22 992540  7.5646E-20 992550  7.0917E-22
   2 162500  7.6697E-08      0  0.0000E+00      0  0.0000E+00      0  0.0000E+00
   3  10030  2.0892E-01  30060  6.0786E-04  30070  1.3046E-05  40090  1.9438E-05
   3  40100  1.1748E-04  60140  1.6964E-05 280660  0.0000E+00 290660  1.4066E-14
   3 300660  5.0403E-09 290670  7.6644E-19 300670  2.4718E-10 300680  1.1002E-12
A megoldás működik, amíg nem vagyok a változó értékek találhatók a sorok a "csökkentett" karaktereket ... (amíg nem történik változás a sor, nem awk újra összekapcsol a sor, így konzerválásának joga távolság).

Is, minden érv a nyomtatás nem megfelelő ...

Hogyan tudnám megoldani ezt a két problémát?
  #5 (permalink)  
Old 10-04-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderátor
  
 

Join Date: Feb 2007
Hozzászólások: 4.302
Használhatja printf nyomtatásának összhangban meghatározott formában, valami ilyesmit:

Kód:
VALUE=".........."
awk -v var="$VALUE" 'BEGIN{FS=OFS=" ";fmt="%5s%7s%12s%7s%12s%7s%12s%7s%12s\n"}
NR==FNR{a[$0]=$0; next}
{for(i=4;i<9;i+=2)if($i in a){$(i+1)=var}}
{for(i=4;i<9;i+=2)if($i in a){printf(fmt,$1,$2,$3,$4,$5,$6,$7,$8,$9);next}}
{print}' ID_to_be_changed my_file
Üdvözlettel
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 03:44 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0