Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
Google Site



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.

Reply
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 11.11.2009
Registrert bruker
 

Ble medlem: 2009 nov
Innlegg: 2
Reformating ascii-fil med awk

Hallo,


Jeg har en masse ascii filer som jeg ønsker å reformatere:

En av filer skjer kolonne (for eksempel $ 5) inneholder et økende antall (se eksempel):


$ 5 \u003d

Code:
1 
1 
1 
1 
1 
2 
2 
2 
2 
3 
3 
3 
3 
3 
3 
3 
3 
4 
4

[...]

Hva jeg vil gjøre er å tilordne verdien "1" for første posten på en konsistent blokk (en blokk er definert av den samme $ 5 tall), "2" for middels poster og "3" for den siste. Så annen "1" på neste blokk, etc.:

I mitt eksempel kan filen bli:

$ 5 \u003d

Code:
1 
2 
2 
2 
3 
1 
2 
2 
3 
1 
2 
2 
2 
2 
2 
2 
3 
1 
3

[...]


Jeg har testet noen ting med awk men jeg har alltid mislykkes ...

Hvis du har noen ideer til å hjelpe meg ... du er velkommen.

Nico.


PS: Unnskyld meg dårlig engelsk, jeg er fra Frankrike

---------- Post oppdatert kl 04:23 ---------- forrige oppdatering var ved 04:04 ----------

I've tryed dette ...


Code:
awk '{l[NR]=$1};

   	{for(i=1;i<=NR;i++)

	{if(l[i]!=l[i-1])print "1";

	if(l[i]==l[i-1] && l[i]==l[i+1]) print "2";

	if(l[i]!=l[i+1])print "3"}}' toto

men det fungerer ikke: /

Sist endret av radoulov; 11-12-2009 kl 03:45.. Årsak: lagt til kode tags
Sponsede lenker
  #2 (permalink)  
Old 11-12-2009
radoulov's Avatar
--
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 3220
Bruke gawk, nawk eller /usr/xpg4/bin/awk på Solaris:


Code:
awk 'BEGIN { ARGV[ARGC++] = ARGV[ARGC-1] }
FNR == NR { _[$5]++ ? max[$5] = NR : min[$5] = NR; next }
{ $5 = FNR == min[$5] ? 1 : (FNR == max[$5] ? 3 : 2) } 5
' infile

Sammenhengende standard FS tegn vil bli presset på grunn av ricompilation i posten,
Gi meg beskjed hvis dette kan være et problem.
Uten standard FS en OFS bør være eksplisitt spesifisert.

Sist endret av radoulov; 11-12-2009 kl 04:39..
  #3 (permalink)  
Old 11-12-2009
Registrert bruker
 

Ble medlem: 2009 nov
Innlegg: 2
Thanks a lot radoulov ..

Det fungerer perfekt ...

Jeg har testet min gamle skriptet i en Exceed emulert unix ... Det fungerer også ... (mens det ikke fungerer på Cygwin ...) Men løsningen holder alle de andre kolonnene. Det er perfekt for meg.

For øyeblikket jeg ikke forstår alle syntaksen av skriptet ... men jeg skal prøve å studere litt problemet. \u003d)

Caribou.
Sponsede lenker
Reply

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 Av


Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
konvertere ascii verdier i ASCII-tegn sandeeppvk Shell programmering og Skripting 10 04-24-2009 12:23
Selektivt Reformating en fil ved hjelp awk sda_rr UNIX for Advanced & ekspertbrukere 5 03-23-2009 12:33
awk - reformating rader i kolonnene jmd2004 Shell programmering og Skripting 1 08-14-2008 12:56
Hvordan konverterer engelsk tekst fil til ASCII-fil? laknar Shell programmering og Skripting 1 07-23-2008 10:37
Hjelp på awk .. reformating en fil Martian Shell programmering og Skripting 4 08-06-2007 07:18



Alle klokkeslett er GMT -4. Nå er klokken 08:43.


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-2010. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0