Toon posts:

[AWK] script uitvoeren met meerdere datafiles

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een simpel script dat van een tekstbestand de regels en de woorden telt.

code:
1
2
3
4
5
6
7
8
9
10
11
BEGIN {
aantal_woorden = 0
}

{
aantal_woorden = aantal_woorden + NF
}

END {
print "Dit bestand bevat " NR " regels en " aantal_woorden " woorden"
}


die voer je dan uit met: awk -f script.awk textfile.txt

En nu mijn probleem: Ik wil dat je hem ook kunt uitvoeren met meerdere textbestanden en dat die dan van elk bestand apart de regels en woorden telt en op het eind weergeeft. Dus bijvoorbeeld: awk -f script.awk textfile1.txt textfile2.txt en dat die dan weergeeft dat bestand 1 100 regels en 500 woorden heef en textbestand 2 500 regels en 1000 woorden bijvoorbeeld.

Ik heb al gezocht op internet en GoT maar niet echt iets kunnen vinden, wie kan me hierbij helpen?

[ Voor 4% gewijzigd door Verwijderd op 04-12-2005 16:32 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Lees dit eens door. Ik ken AWK verder niet, maar hiermee moet je er wel uit kunnen komen. :)

Overigens, als je code post, wil je dan de [code]-tag gebruiken? Dat is net even iets duidelijker. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Misschien verpest ik nu je programmeerplezier, maar tik ook eens `wc` (wordcount) in op je console. Of `wc *`.

Verwijderd

Topicstarter
chris schreef op zondag 04 december 2005 @ 16:54:
Misschien verpest ik nu je programmeerplezier, maar tik ook eens `wc` (wordcount) in op je console. Of `wc *`.
Nee hoor, ik weet dat het ook met word count kan, maar het moet in AWK...

@ -NMe-: ik kom er met die link nog niet helemaal uit :S

  • WormLord
  • Registratie: September 2003
  • Laatst online: 30-03 16:26

WormLord

Devver

In je awk-script kun je met de variabele FILENAME zien met welk bestand awk bezig is.
Door hierop in je script te controleren, kun je dus ook voor meerdere bestanden tegelijk je line + word count doen.

Verwijderd

Je hebt de interne variabelen NR (current record number) en FNR (current record number in de huidige file). Gegeven dat de standaard RS een newline is, moet dat toch wel de oplossing voor het aantal regels geven per file. En NF geeft je het aantal velden met elke regel. Dus dat wordt optellen en afdrukken.
Pagina: 1