![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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}' $_");
|
|
||||
|
Citat:
För att lagra 4:e kolumn värdet i perl, Kod:
my @arr = split(/\|/, $var); print $var[3]; Är det vad du menade? |
|
||||
|
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?
|
|
|||||
|
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
|
|
||||
|
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) |