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
Adding oszlopok két kép chandra321 Shell programozás és Scripting 7 05-06-2009 12:11 PM
Comparing hasonló oszlopok két különböző kép ragavhere Shell programozás és Scripting 13 04-16-2008 08:53 AM
Összehasonlítása, a közös oszlopok a táblázat két kép ragavhere SUN Solaris 1 04-11-2008 08:41 AM
Comparing Oszlopok a két fájlt ggopal Shell programozás és Scripting 4 02-21-2007 08:06 PM
Comparing Oszlopok a két fájlt ggopal A UNIX a fejlett és szakértői Felhasználók 1 02-17-2007 04:11 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 06-05-2008
oabdalla oabdalla is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2008
Hozzászólások: 2
összehasonlítása fájlok - hozzátéve / mínusz / formátolás oszlopok

Nekem van két kép:
file1.txt:
FS Total Used Free Használt%
/ u01 10000 8000 2000 80%
/ u02 10000 8000 2000 80%
/ u03 10000 8000 2000 80%
/ u04 10000 8000 2000 80%
/ u05 10000 8000 2000 80%
/ u06 10000 8000 2000 80%
/ u07 10000 8000 2000 80%
/ U10 10000 5000 5000 50%

file2.txt:
FS Adj
/ u01 1.500
/ u05 500
/ U10 2.500

Szeretném összehasonlítani azokat használja az első oszlop minden fájlt, és hozzon létre egy kimenete is, hogy néz ki, mint a következő:

FS Összesen Used + Free-Adj Adj (Used Adj +) / Total
--------- -------- --------- --------- ---------
/ u01 10.000 9.500 500 95%
/ u02 10.000 8.000 2.000 80%
/ u03 10.000 8.000 2.000 80%
/ u04 10.000 8.000 2.000 80%
/ u05 10.000 8.500 1.500 85%
/ u06 10.000 8.000 2.000 80%
/ u07 10.000 7.500 2.500 75%

Kérjük, vegye figyelembe, hogy minden olyan vonalon, a file1.txt szerepel, és az oszlop "adj" a file2.txt egészül ki oszlop "használt" oszlop és levonják a "Free" című file1.txt csak ha van egy párja.

Voltam képes előállítani ezt a jelentést csak betöltése után ezeket a fájlokat egy adatbázisba, de biztos vagyok benne, meg tudom csinálni shell script segítségével az Ön segítségével.

Köszönöm,
Ómer
  #2 (permalink)  
Old 06-05-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Addict
  
 

Join Date: Jan 2007
Helyszín: Варна, България / Milano, Olaszország
Hozzászólások: 2860
Használhatja valami ilyesmi:
(használd nawk / vagy usr/xpg4/bin/awk Solaris)

Kód:
awk 'NR == FNR { 
  sub(/,/, "")
  _[$1] = $2 
  next 
  }
FNR == 1 { 
  printf "%4s %5s %8s %8s %14s\n", 
  "FS", "Total", "Used+Adj", "Free-Adj", "(Used+Adj)/Total"
  while (++i < 46) printf "-"
  print ""
  next
  }           
$1 in _ { 
  $3 += _[$1]
  $4 -= _[$1] 
  $5 = $3/$2*100 
  }
{
  printf "%4s %5d %8d %8d %14d%\n",
  $1, $2, $3, $4, $5
  }' file2.txt file1.txt
  #3 (permalink)  
Old 06-06-2008
oabdalla oabdalla is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2008
Hozzászólások: 2
Köszönöm, radoulov, az Ön gyors és elegent forgatókönyvet. Működik tökéletesen.
Mindössze annyit kell tennie, most formázza a jelentést szépen így könnyebben olvasható, de azt hiszem, tudok kitalálni.

Értékelem

Ómer
  #4 (permalink)  
Old 06-11-2008
vakharia Mahesh vakharia Mahesh is offline
Regisztrált felhasználó
  
 

Join Date: Feb 2007
Hozzászólások: 51
Question összehasonlítva a fájlokat, stb

Szia Radoulov,
Elolvastam a forgatókönyvet. Tud eloborate nekem a tudás. Köszönöm.
  #5 (permalink)  
Old 06-11-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Addict
  
 

Join Date: Jan 2007
Helyszín: Варна, България / Milano, Olaszország
Hozzászólások: 2860
Idézet:
Originally Posted by vakharia Mahesh View Post
[...]
Tud eloborate nekem a tudás
Biztos.

Kód:
NR == FNR
A fenti kifejezés értéke True csak feldolgozása közben az első bemeneti fájl (file2). Tehát, a megfelelő intézkedések a következők:

Kód:
{ 
  sub(/,/, "")
  _[$1] = $2 
  next 
  }
Strip ezer elválasztó tedd egy asszociatív tömb _vele $ 1 A gombok, $ 2 az értékeket, így mivel a bemenet ez lesz:

Kód:
key -> "/u01" value -> 1500
key -> "/u05" value -> 500
key -> "/u10" value -> 2500
A következő nyilatkozat erők awk megállítani az aktuális rekord feldolgozása érdekében további szabályok / cselekvéseket kell végrehajtani E feljegyzés. Ez azt jelenti, hogy a következő tevékenységek nem dolgozza fel az első bemeneti fájlt.

Kód:
FNR == 1
FNR az a szám, az irattári anyagok, amelyeket eddig olvasott az aktuális bemeneti fájl (a második bemeneti fájl ebben az esetben). Szóval, feldolgozása közben az első rekord a második bemeneti fájl:

Kód:
{ 
  printf "%4s %5s %8s %8s %14s\n", 
  "FS", "Total", "Used+Adj", "Free-Adj", "(Used+Adj)/Total"
  while (++i < 46) printf "-"
  print ""
  next
  }
Nyomtassa ki a fejléc oszlopok és menjen a következő nyilvántartást.

Kód:
$1 in _ { 
  $3 += _[$1]
  $4 -= _[$1] 
  $5 = $3/$2*100 
  }
A véleménynyilvánítás tömböt kulcs igazat ad vissza, ha a megjelölt kulcs létezik a jelzett array. Azok számára, rekordok tegyük a következőket:
- Add az értéket _ [$ 1] A A megfelelő kulcs $ 1 A harmadik oszlop
- Kivon az érték _ [$ 1] A A megfelelő kulcs $ 1 a negyedik oszlop
- Értékének kiszámítása az ötödik oszlop

Kód:
{
  printf "%4s %5d %8d %8d %14d%\n",
  $1, $2, $3, $4, $5
  }
Nyomtatás az új értékeket.


Remél ez segít.
  #6 (permalink)  
Old 06-12-2008
vakharia Mahesh vakharia Mahesh is offline
Regisztrált felhasználó
  
 

Join Date: Feb 2007
Hozzászólások: 51
Thumbs up Comparing Files

SIMPLY SUPERB!? NO WORDSSSSSSSS is elegendő a te
Magyaráznom. Kötegek köszönőlevele BOTTOM OF MY HEART.Let nekem
mondjuk érthető is somthing, és elmagyarázza, az egyszerűség, amely több
cumbersome.Once ismét Thanx.
Cheers Dimitri.
  #7 (permalink)  
Old 06-12-2008
vakharia Mahesh vakharia Mahesh is offline
Regisztrált felhasználó
  
 

Join Date: Feb 2007
Hozzászólások: 51
Thumbs up Comparing Files

Éppen most írtam a választ, de nincs hol appers,

Kedves Radlouv
Kötegek Köszönöm Önnek elmagyarázza a kód nagyon egyszerű távon.
Szó sem lehet róla, hanem csak SUPERB. Nem szó is elég. Tudva van valami
hanem, hogy magyarázza meg az egyszerű wrods igényel nagy InSite.

Thanx mégegyszer. Cheers Up.
Closed Thread

Könyvjelzõk

Címkék
Solaris

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 08:01 PM.


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