sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #34257
Re: grep, ls og redirection i X
On Wed, 7 Mar 2001, Mogens Kjaer wrote:
> Højst sandsynligt har du noget i din .profile eller /etc/profile
> eller et tilsvarende sted, som echo'er disse escape sekvenser.
Hmm... Desværre ikke, eller rettere - Jeg kan ikke se noget der skulle
medfører dem.
Her er det stykke i scriptet der opbygger fexclude filen.
----------
EXCLUDE=`cat ./exclude`
if [ -f ./tfexclude ]; then
rm ./tfexclude
fi
for FINT in $EXCLUDE; do
FMIN=`echo $DMINT | cut -f1 -d"-"`
FMAX=`echo $DMINT | cut -f2 -d"-"`
interval $MIN $MAX 1 >> ./tfexclude
done
cat ./tfexclude | sed 's; $;$;' | sed 's; ;$|^;g' | \
sed 's;^;^;' > ./fexclude
CFILES=`ls --color=never [1-9]* 2>/dev/null | \
grep -v -E \`cat ./fexclude\``
----------
Escape sekvenserne har allerede sneget sig ind i ./tfexclude filen.
interval - som danner tfexclude - er et lille program i c som ser ud som
følger:
----------
#include <stdio.h>
int main(int argc, char *argv[])
{
int counter,jump=1,min,max;
if (argc < 3) {
printf("Usage: %s <min> <max> [interval]\n", argv[0]);
return(1);
} else {
if (argc >= 4) {
jump=abs(atoi(argv[3]));
}
if (atoi(argv[1]) <= atoi(argv[2])) {
min=atoi(argv[1]);
max=atoi(argv[2]);
} else {
min=atoi(argv[2]);
max=atoi(argv[1]);
}
counter=min;
while (counter<=max) {
printf("%d ", counter);
counter+=jump;
}
}
}
----------
Jeg må ærligt indrømme at jeg ikke kan se hvor escape sekvensen sniger sig
ind.
Og som det sidste, så ser ./exclude nogenlunde ud som følger:
----------
2-4 8-12 22 14-18
----------
Altid kun een linje, og ingen af intervallerne overlapper. Intervallerne
behøver dog IKKE at være i rækkefølge. exclude filen er i orden, og har
IKKE escape sekvenserne i sig.
Jeg kan naturligvis bare droppe ud af X når jeg skal køre scriptet, men
det virker som en lidt besynderlig fremgangsmåde.
Med venlig hilsen
Bjørn Bille Højte
bjoern@xxxxxxxxxxxxx
Follow ups
References