![]() |
|
|
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 |
| xlc sammanställning fel vid hanteringen av Operatoröverlagring | luop0812 | AIX | 1 | 04-09-2008 05:09 |
| perl: När man arbetar med filer som inte finns | joeyg | Shell-programmering och Skript | 2 | 02-20-2008 05:09 |
| tsch script problem (att hantera sed) | csnewbie84 | Shell-programmering och Skript | 10 | 05-02-2007 11:51 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Hjälp att hantera arra
Jag är fil readinga Lin rad och bygger craeting en ARRY unika elemenst från den andra kolumnen i raden. Men när jag coem ur medan slinga min samling blir tomt, kan eny en berätta för mig vad jag skulle göra fel
#! / bin / bash logfile \u003d ". / mylog.dat" börja \u003d 100 slutet \u003d"$(( $ börja + 1000))! d " index \u003d 0 Isthere \u003d 0 MOTORER \u003d "" sed "$ börjar, $ end" $ logfile | while read line göra I \u003d `echo $ line | awk-F", " '(print $ 2)'` Isthere \u003d 0 för post i "$ (MOTORER [@]}"; do if [ "$ i" \u003d "$ item"]; sedan echo "Aleady där" Isthere \u003d 1 bryta fi gjord if [ "$ Isthere"-eq 0]; sedan echo "lägga $ Isthere" MOTORER [$ index] \u003d `expr $ i` Index \u003d $ (($ index + 1)) fi # Echo $ line gjord echo $ index $ (# motorer [@]) # Howe någonsin på denna punkt array är tom för i "$ (MOTORER [@]}"; do echo $ i gjord |
|
|||||
|
Ändra din teknik för att bli av med ledningen, byta skal till ksh, eller leva med den tomma matrisen. Dessa är dina alternativ. Ledsen, men du kan inte hålla ledningen, bash, och innehållet array. Man måste gå. Här är ett enkelt skript för att illustrera problemet ...
Kod:
$ cat script2
#! /usr/local/bin/bash
echo "cat
dog
mouse
rabbit
lion
wolf
dog
bat
lion
hamster
rabbit
elephant
elephant
whale
cricket" > list.txt
index=0
cat list.txt | while read item ; do
array1[index]=$item
((index=index+1))
done
echo array1: ${array1[@]}
exec < list.txt
index=0
while read item ; do
array2[index]=$item
((index=index+1))
done
echo array2: ${array2[@]}
exit 0
$ ./script2
array1:
array2: cat dog mouse rabbit lion wolf dog bat lion hamster rabbit elephant elephant whale cricket
$
|
|
||||
|
Fantastic, som var ny vara, tänkte jag på att bli av med det "disken skriva" inträffar medan ut den sätts in i en fil.
sed -n "$ börjar, $ end" $ logfile> motorer exec <motorer samtidigt läsa linje göra # Array Infoga gjord Tack så mycket, är jag van så t bash så det är ksh inte lätt för mig att använda nu. Det har inte "auto avslutad när vi skriver något och det <tab> nyckeln stroke |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|