The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Hur får man följande output i perl e-lalit Shell-programmering och Skript 1 08-08-2008 02:20
Ställ en variabel från awk produktion Cranie UNIX for Dummies Frågor & Svar 3 10-11-2007 10:39
För att lagra produktionen i en variabel Sudhakar333 Shell-programmering och Skript 2 07-10-2007 09:45
hur produktionen awk till en variabel bashirpopal UNIX for Dummies Frågor & Svar 4 04-02-2003 12:02
Spara Perl scrpits i ett UNIX Hagrid UNIX for Dummies Frågor & Svar 3 06-21-2001 01:42

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ök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-08-2008
userix userix is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 21
Spara utdata från awk i ett perl variabel

Hur skulle jag klara awk produktion till en perl variabel?

Till exempel, jag vill spara värdet i den 4: e kolumnen i variabeln kallas test. Min bästa gissning är något som följer, men jag är säker på att detta inte är korrekt.


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

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

Join Date: februari 2007
Location: Innsbruck, Österrike
Inlägg: 1889
Perl stöder "backtick operatör, precis som i tanken. Den enda skillnaden är att Perl inte konvertera radmatningar till utrymmen eller krama extra mellanslag. Så:

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

är nog vad du vill.
  #3 (permalänk)  
Old 10-08-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: mars 2005
Ort: löv i B + träd
Inlägg: 2.958
Citat:
Ursprungligen postat av userix View Post
Hur skulle jag klara awk produktion till en perl variabel?

Till exempel, jag vill spara värdet i den 4: e kolumnen i variabeln kallas test. Min bästa gissning är något som följer, men jag är säker på att detta inte är korrekt.


Kod:
$test = system("awk '/NUMBER/{print \$4}' $_");
Varför inte du använder funktionen lämnas i perl själv?

För att lagra 4:e kolumn värdet i perl,


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

Är det vad du menade?
  #4 (permalänk)  
Old 10-09-2008
userix userix is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 21
Jag vill söka efter ett nummer i den 4: e kolumnen på en viss linje i en fil och lagra detta värde i en variabel. Denna fil innehåller över 7000 rader med data. De särskilda linje Jag söker innehåller bokstäverna "OXT" Detta är anledningen till att jag tänkte använda awk för att hitta den linje som innehåller "OXT" och sedan ta numret från den 4: e kolumnen i den raden bara. Skulle det fungera med split?
  #5 (permalänk)  
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: februari 2007
Location: Innsbruck, Österrike
Inlägg: 1889
Han är behandlingen en fil som lagras i $ _. För att de awk one-liner ser trevligare. Men det skulle normalt ersättas med:


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

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

Join Date: februari 2007
Location: Innsbruck, Österrike
Inlägg: 1889
Absolut. Letar du efter exakt en linje eller mer? Är kolumner separerade med blanksteg? Om man antar ja till alla svar ovan:

Kod:
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 (permalänk)  
Old 10-09-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Det kommer bara att plocka ut den första händelsen, dock. Den ursprungliga awk script skulle visa alla matchande rader. Inte svårt att komma runt om du vet något Perl, Bara hänvisar till i fall du är ny på detta.

Senast redigerad av era; 10-09-2008 vid 05:44.. Motivering: För det första, inte sista händelse (missade att - tack otheus)
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 08:12.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0