The UNIX and Linux Forums  

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
Egyesülő vonalak használata AWK senthil_is Shell programozás és Scripting 6 03-05-2008 12:40 PM
Egyesülő vonalak - Tuning a forgatókönyvet senthil_is Shell programozás és Scripting 3 03-05-2008 03:24 AM
egyesülő két sort a fájl thaduka A UNIX a dummies Kérdések és válaszok 6 07-11-2007 10:27 AM
Sorok összevonása egyetlen Foxgard A UNIX a dummies Kérdések és válaszok 8 06-19-2005 07:36 AM
Counting tételek és fájlok jorge.ferreira A UNIX a dummies Kérdések és válaszok 6 12-11-2003 11:24 AM

 
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 01-28-2008
Meert's Avatar
Meert Meert is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2007
Hozzászólások: 8
Egyesülő fájlokat AWK szűrés és számítási tételek

Hi there,

Nekem van egy pár kép Meg kell egyesíteni. Meg tudom csinálni egy egyszerű összeolvad az összefűző őket egy nagyobb fájlt.

De aztán kell szűrni a fájlt kap a kívánt eredmény.

A kimenet így néz ki:

Kód:
TRNH 0000000010941
ORDH
OADR
OADR
ORDL
ENDT    1116399         000000003 000000001
TRLR 0000000010941 000000003 000000001
TRNH 0000000010942
ORDH
OADR
OADR
ORDL
ENDT    1116400         000000003 000000001
TRLR 0000000010942 000000003 000000001
TRNH 0000000010943
ORDH
OADR
OMSG
ORDL
ORDL
ENDT    1116399         000000004 000000001
TRLR 0000000010943 000000003 000000001
TRNH 0000000010944
ORDH
OADR
OADR
ORDL
ENDT    1116400         000000003 000000001
ORDH                                       
OADR                                       
OADR
ORDL                                       
ORDL                                       
ENDT    1116400         000000004 000000001
TRLR 0000000010944 000000007 000000002

A szűrés és meg kell hagyni az első és az utolsó sorban a TRNH és TRLR (megadva az utolsó TRLR, ugyanabban a sorrendben, mint az első TRNH). A többi TRNH és TRLR sorokat kell hagyni.

Aztán a végső TRLR kell képviselniük összege ORDH vonalak és annak összegét az OADR, OMSG és ORDL vonalak.

Én még nem jött, hogy törli a felesleges TRNH és TRLR sorok mégis, ez a szűrő van eddig:


Kód:
BEGIN {
#	 define two counters 
	ordh_cnt = 0;
	ordl_total_cnt = 0;
}

#  Start filter 

#  if line start with ORDH add 1 to counters 
$1 == "ORDH" {
	ordh_cnt++;
}

#  if line starts with TRLR, adjust line to reflect new count of ORDH in order
$1 == "TRLR" {
	printf "%s%9.9d%s\n", substr($0, 0, 31), ordh_cnt, substr($0, 39);
#	 line has been printed, next rule 
	next;
}

#  if line start with ORDL add 1 to counters 
$1 == "ORDL" {
	ordl_total_cnt++;
}

#  if line start with OADR add 1 to counters 
$1 == "OADR" {
	ordl_total_cnt++;
}

#  if line start with OMSG add 1 to counters 
$1 == "OMSG" {
	ordl_total_cnt++;
}

#  if line starts with TRLR, adjust line to reflect new total ORDL, OADR and OMSG in complete file 
$1 == "TRLR" {
	printf "%s%9.9d%s\n", substr($0, 0, 19), ordl_total_cnt, substr($0, 29);
#	 line has been printed, next rule 
	next;
}

#  Line has not changed, print normal line 
{
	print $0;
}

Most az összeget ORDH vonalak kimenetet az új fájlt, úgy, hogy úgy tűnik, hogy működik. Ám összege OADR, OMSG és ORDL vonalak nem pótolja a kimenetet.

A végeredmény így fog kinézni:


Kód:
TRNH 0000000010941
ORDH
OADR
OADR
ORDL
ENDT    1116399         000000003 000000001
ORDH
OADR
OADR
ORDL
ENDT    1116400         000000003 000000001
ORDH
OADR
OMSG
ORDL
ORDL
ENDT    1116399         000000004 000000001
ORDH
OADR
OADR
ORDL
ENDT    1116400         000000003 000000001
ORDH                                       
OADR                                       
OADR
ORDL                                       
ORDL                                       
ENDT    1116400         000000004 000000001
TRLR 0000000010941 000000017 000000005

Akármi segít akar lenni nagyon méltányol
 

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:33 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