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 > A UNIX a dummies Kérdések és válaszok
.
google unix.com



A UNIX a dummies Kérdések és válaszok Ha nem biztos benne, hogy hol osztályozhatom Unix vagy Linux kérdés, post it here. Minden UNIX és Linux newbies welcome!

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
Szállítmány kép alapján számú sorral wahi80 Shell programozás és Scripting 2 06-03-2008 10:38 PM
Szállítmány egy fájl alapján a nyilvántartások más kép er_ashu Shell programozás és Scripting 2 05-12-2008 05:34 PM
szétdarabolják nyilvántartást és hozzáadása a rekord egy fájlba rsolap Shell programozás és Scripting 1 08-13-2007 02:58 PM
szétdarabolják kép alapján szöveget a fájlba matrix1067 Shell programozás és Scripting 1 01-30-2006 08:45 PM
Szállítmány egy fájl alapján néhány feltételt, és azokat naming srivsn Shell programozás és Scripting 1 12-07-2005 11:27 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 05-12-2008
er_ashu er_ashu is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2007
Hozzászólások: 50
Szállítmány egy fájl alapján rekordot bűn egy másik fájlt

Mind,

Kapunk egy fájlt a nagy nincs nyilvántartás (rekordok változó lehet), és meg kell osztott meg két kép alapján egy másik fájlt. pl

Fájl1:

UHDR 2008112
"25.187", "00000022", "00" ,21-április-1991, "", "D", -000000519, 0000000000, "C",, 000.000.000, +000000000,000000000, "2", "" ,21-APR-1991
"8Y3H4", "0000004H", "00" ,16-április-1992, "", "H", -001621119, 0000000000, "C",, 000.000.000, +000000000,000000000, "2", "" ,21-APR-1991
: "95Y8U", "02100971", "00" ,03-MAR-1991, "", "H", -000004499, 0000000000, "",, 000.000.000, +000000000,000000000, "2", "US" ,21-APR-1991
"24.567", "02100973", "00" ,26-szeptember-1991, "", "H", -000000362, 0000000000, "",, 000.000.000, +000000000,000000000, "2", "US" ,21-APR-1991
--
--
--
UTRL 00144700


Fájl2:
2518720080512
2456720080512
1256720080512
8WE7820080512
8Y3H020080512
8Y3H220080512
8Y3H420080512
8Y3H620080512
--
--
--
--

Ha az első 5 karakter a 2-fájl illeszkedik a karakter 2-6 in fájl1, azt külön e nyilvántartásokat, és azokat egy másik fájlt és pihenés a nyilvántartást kell másolni egy másik fájlt.

Próbáltam csökkenteni a parancs, hanem a fájl1 elég nagy, hogy a rengeteg időt, hogy az értékek egy változó, majd hasonlítsa.

Van-e olyan módon, mely a fenti feladat elég gyors.

Kérem, segítsen, mert sürgős szükség.

Köszönöm előre.
  #2 (permalink)  
Old 05-13-2008
era era is offline Forum Advisor  
Herder a Mihaszna Cicák (A szombati)
  
 

Join Date: Mar 2008
Helyszín: / ott / is / csak a / bin / sh
Hozzászólások: 3652
Ha a grep tud olvasni minták egy fájlból (például GNU grep), próbálj ki valami ehhez hasonló.

Kód:
cut -c1-5 file2 >patterns
grep -f patterns file1 >matches
grep -f patterns -v file1 >nonmatches
Van mit javítani kapcsolatos, hogy a minták mindig egyezik a sor elejére, stb Lehet helyettesíti az első sorban valami hasonló

Kód:
sed 's/^\(.....\).*/^"\1",/' file2 >patterns
Ezáltal a kettős idézőjelbe a keresett szöveget, és egy vessző mögé, és a speciális karakter "^" előtt, ami azt jelenti, csak a mérkőzés elején a sorból.

Last edited by korszak; 05/13/2008 at 04:28 AM.. Reason: Magyarázd átdolgozott minták
  #3 (permalink)  
Old 05-13-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderátor
  
 

Join Date: Feb 2007
Hozzászólások: 4.308
Az awk:

Kód:
awk 'NR==FNR{a[substr($0,1,5)];next}
NF<3{next}
substr($1,2,5) in a {print > "file1";next}
{print > "file2"}' file2 file1
Üdvözlettel
  #4 (permalink)  
Old 05-13-2008
er_ashu er_ashu is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2007
Hozzászólások: 50
Köszönet Franklin és időben.

Franklin,
Én fpossible, meg tudja magyarázni wha aA cod eis csinál. Én vagyok az awk kezdő és ez segíteni fog nekem értelmezéséhez a dolgokat.
Azt is, mit tegyek, ha nem akarom, hogy módosítja az eredeti fájlokat.

Köszönet újra.
  #5 (permalink)  
Old 05-13-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderátor
  
 

Join Date: Feb 2007
Hozzászólások: 4.308
Kód:
awk 'NR==FNR{a[substr($0,1,5)];next}
Jelentkeznek az első 5 karaktere az első fájlt tömbben.

Kód:
 NF<3{next}
Figyelmen kívül hagyja vonalakon kevesebb, mint 3 területen (az első és az utolsó sor)

Kód:
 substr($1,2,5) in a {print > "file1";next}
Ha 5 karakter után az idézőjeleket a tömb nyomtatni fájl1 ..

Kód:
 {print > "file2"}
... else print a fájl2


Az eredeti fájlok is kell maradnia.

Üdvözlettel

Last edited by Franklin52; 05-13-2008 at 02:03 PM.. Reason: nyelvi korrekció
  #6 (permalink)  
Old 05-13-2008
er_ashu er_ashu is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2007
Hozzászólások: 50
Franklin,

You rock.
De amikor használja ezt:

Kód:
awk 'NR==FNR{a[substr($0,1,5)];next}
NF<3{next}
substr($1,2,5) in a {print > "matched.txt";next}
{print > "notmatched.txt"}' file2 file1
Én csak látni matched.txt fájlt, de nem "notmatched.txt". Am I missing something here?
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 09:20 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