The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Hoe krijg ik volgende output in perl email-lalit Programmeren en Shell Scripting 1 08-08-2008 02:20 PM
Stel een variabele uit awk-uitgang Cranie UNIX voor Dummies Questions & Answers 3 10-11-2007 10:39
Voor het opslaan van de output in een variabele Sudhakar333 Programmeren en Shell Scripting 2 07-10-2007 09:45
hoe de output awk aan een variabele bashirpopal UNIX voor Dummies Questions & Answers 4 04-02-2003 12:02
Saving Perl scrpits in een UNIX Shell hagrid UNIX voor Dummies Questions & Answers 3 06-21-2001 01:42 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-08-2008
userix userix is offline
Geregistreerde gebruiker
  
 

Join Date: mei 2008
Posts: 21
Het opslaan van de output van awk in een perl variabele

Hoe zou ik awk uitvoer naar een perl variabele?

Bijvoorbeeld, ik wil om de waarde in de 4de kolom in de variabele genaamd test. Mijn beste gok is iets als volgt, maar ik ben er zeker van dat dit niet juist is.


Code:
$test = system("awk '/NUMBER/{print \$4}' $_");

  #2 (permalink)  
Old 10-08-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1891
Perl steunt de "backtick" exploitant, net als in het reservoir. het enige verschil is dat Perl niet omzetten linefeeds naar spaties noch uitstotings extra spaties. Dus:

Code:
$test=`awk .... $_`;

is waarschijnlijk wat je wilt.
  #3 (permalink)  
Old 10-08-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Locatie: leaf node in B + boom
Berichten: 2.958
Citaat:
Oorspronkelijk geplaatst door userix View Post
Hoe zou ik awk uitvoer naar een perl variabele?

Bijvoorbeeld, ik wil om de waarde in de 4de kolom in de variabele genaamd test. Mijn beste gok is iets als volgt, maar ik ben er zeker van dat dit niet juist is.


Code:
$test = system("awk '/NUMBER/{print \$4}' $_");
Waarom heb je niet gebruik maken van de functie die in perl zelf?

Bewaart de 4de kolom waarde in perl,


Code:
my @arr = split(/\|/, $var);
print $var[3];

Is dat wat u bedoelde?
  #4 (permalink)  
Old 10-09-2008
userix userix is offline
Geregistreerde gebruiker
  
 

Join Date: mei 2008
Posts: 21
Ik wil zoeken voor een aantal gevonden in de 4e kolom op een bepaalde lijn in een bestand en bewaar die waarde in een variabele. Dit bestand bevat meer dan 7000 lijnen van gegevens. De specifieke lijn Ik ben op zoek naar de letters "OXT 'Dit is waarom ik zat te denken van het gebruik van awk bij het vinden van de lijn die' OXT 'en vervolgens pak het getal uit de 4de kolom van die lijn alleen. Zou dat werken met split?
  #5 (permalink)  
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1891
Hij is de verwerking van een bestand opgeslagen in $ _. Voor dat de awk one-liner oogt mooier. Maar het zou normaal gesproken worden vervangen door:


Code:
my @test;
if (open(FOO,$_)) { 
 while ($_=<FOO>) { 
   push @test,(split)[4];
 }
}
$test=join(" ",@test);

  #6 (permalink)  
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1891
Absoluut. Bent u op zoek naar precies een regel, of meer? Zijn de kolommen gescheiden door spaties? Ervan uitgaande dat 'ja' tegen alle antwoorden hierboven:

Code:
my $target;
if (open(FOO,$_)) { 
 while ($_=<FOO>) { 
   next unless /OXT/;  # find OXT anywhere in line.
   $target=(split)[4];
   last;
 }
 close(FOO); # forgot this last time, though not really necessary.
}
# 4th field in $target

  #7 (permalink)  
Old 10-09-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
Dat zal alleen kiezen uit het eerste exemplaar, dat wel. De oorspronkelijke awk script zou terugkeren alle overeenkomende lijnen. Niet moeilijk om te werken rond als je weet dat elke Perl, Alleen de vermelding in het geval u nieuw bent bij deze.

Laatst gewijzigd door tijdperk; op 10.09.2008 05:44.. Reden: ten eerste, niet de laatste voorval (gemiste dat - dankzij otheus)
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 04:24.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0