The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Hvordan man får følgende output i perl e-mail-lalit Shell Programmering og Scripting 1 08-08-2008 02:20 PM
Indstil en variabel fra awk output Cranie UNIX for dummyer Spørgsmål & svar 3 10-11-2007 10:39 AM
At gemme output i en variabel Sudhakar333 Shell Programmering og Scripting 2 07-10-2007 09:45 AM
hvordan output awk til en variabel bashirpopal UNIX for dummyer Spørgsmål & svar 4 04-02-2003 12:02 PM
Lagring Perl scrpits i et UNIX Shell hagrid UNIX for dummyer Spørgsmål & svar 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-08-2008
userix userix is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 21
Lagring af output fra awk til et perl variable

Hvordan vil jeg viderebringe awk output til en perl variable?

For eksempel, jeg vil gemme værdien i 4. kolonne i variablen kaldet test. Mit bedste gæt er noget, som følge, men jeg er sikker på, at dette ikke er korrekt.

Code:
$test = system("awk '/NUMBER/{print \$4}' $_");
  #2 (permalink)  
Old 10-08-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Posts: 1.886
Perl støtter "backtick" operatør, ligesom i skallen. Den eneste forskel er, at Perl ikke konvertere linefeeds til rum eller klemme ekstra mellemrum. Så:
Code:
$test=`awk .... $_`;
er sandsynligvis, hvad du ønsker.
  #3 (permalink)  
Old 10-08-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Beliggenhed: blad node i B +-træ
Indlæg: 2.954
Citat:
Oprindeligt Indsendt af userix View Post
Hvordan vil jeg viderebringe awk output til en perl variable?

For eksempel, jeg vil gemme værdien i 4. kolonne i variablen kaldet test. Mit bedste gæt er noget, som følge, men jeg er sikker på, at dette ikke er korrekt.

Code:
$test = system("awk '/NUMBER/{print \$4}' $_");
Hvorfor har du ikke bruger funktionen i perl selv?

For at gemme den 4. kolonne værdi i perl,

Code:
my @arr = split(/\|/, $var);
print $var[3];
Er, hvad De mente?
  #4 (permalink)  
Old 10-09-2008
userix userix is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 21
Jeg vil gerne søge efter en række fundet i 4. kolonne på en bestemt linje i en fil og gemme denne værdi til en variabel. Denne fil indeholder over 7000 linjer data. De specifikke linje Jeg søger efter indeholder bogstaverne »OXT 'Dette er grunden til, at jeg havde tænkt på at bruge awk at finde den linje, der indeholder' OXT 'og derefter håndteringshåndtag nummeret fra 4. kolonne i denne linje kun. Ville at arbejde med split?
  #5 (permalink)  
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Posts: 1.886
Han er behandlingen af en fil gemmes i $ _. For, at de awk en-linjerederierne ser pænere. Men det vil normalt blive erstattet med:

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  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Posts: 1.886
Absolut. Er du på udkig efter præcis en linje, eller mere? Er de kolonner adskilt af whitespace? Antages ja til alle svarene ovenfor:
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
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Det vil kun tage den første forekomst, selv om. Den oprindelige awk script returnerer alle matchende linjer. Ikke svært at løse, hvis du kender nogen PerlBare at nævne, hvis du er ny her.

Sidst redigeret af æra; 10-09-2008 på 05:44 AM.. Årsag: for det første ikke sidste forekomst (glemte at - takket otheus)
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 04:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0