I have just written a shell script that greps a directory for a certain
pattern and reports each file that contains the pattern along with the
filename before it (this is why I wrote it... if I just do a "ls | cat |
grep pattern" or something like that it will report the text that
matches but not the filename).
I am getting strange behavior in that it works, but sometimes it
randomly reports the contents of my / directory. This does not always
happen, only sometimes.
Here's an example:
[EMAIL PROTECTED]:~$ misc/dirgrep code/c/kr/1/ MAXLINE
1-16.c:
--------------------------------------------------------------------------------
#define MAXLINE 1000 /backups /bin /boot /dev /etc /home /initrd
/initrd.img /lib /lost+found /media /mnt /opt /proc /root /sbin /srv
/sys /tmp /usr /var /vmlinuz maximum input line size */ char
line[MAXLINE]; /backups /bin /boot /dev /etc /home /initrd /initrd.img
/lib /lost+found /media /mnt /opt /proc /root /sbin /srv /sys /tmp /usr
/var /vmlinuz current input line */ char longest[MAXLINE]; /backups /bin
/boot /dev /etc /home /initrd /initrd.img /lib /lost+found /media /mnt
/opt /proc /root /sbin /srv /sys /tmp /usr /var /vmlinuz longest line
saved here */ while ((len = getline(line, MAXLINE)) > 0)
1-17.c:
--------------------------------------------------------------------------------
#define MAXLINE 1000 char line[MAXLINE]; while ((len = getline(line,
MAXLINE)) > 0) {
...
Here's the source for dirgrep:
#!/bin/bash
PWD=`pwd`
cd $1
for file in $(ls); do
TEXT=`cat $file | grep $2`
if [ $? -eq 0 ]; then
echo
echo "$file:"
echo
"--------------------------------------------------------------------------------"
echo $TEXT
fi
done
cd $PWD
Thanks all,
Martin
_______________________________________________
EUGLUG mailing list
[email protected]
http://www.euglug.org/mailman/listinfo/euglug