I changed the program to have the following:
filename indata pipe "ls -l &logdir | grep ""&newdate"" ";
where &logdir  and &newdate resolve to the following:
34         filename indata
SYMBOLGEN:  Macro variable LOGDIR resolves to /cpspb/prod/log/mar11/
SYMBOLGEN:  Macro variable NEWDATE resolves to Mar 23
34       !                 pipe "ls -l &logdir | grep ""&newdate"" ";
35         
But this still is not working.  This is the error I get.  Like it can't read the files that it found.  
NOTE: The infile INDATA is:
      Pipe command="ls -l /cpspb/prod/log/mar11/ | grep "Mar 23" "
ERROR: Physical file does not exist, /cpspb/prod/log/mar11/-rw-rw-r-- 1 cpsmod 
       cpspb    2581 Mar 23 14:38 blaisechgdaypi.log.
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7
3                                The SAS System  14:38 Wednesday, March 23,>
1         -rw-rw-r-- 1 cpsmod cpspb    2581 Mar 23 14:38 blaisechgdaypi.log 65
lname=  linectr=0
f2r=-rw-rw-r-- 1 cpsmod cpspb    2581 Mar 23 14:38 blaisechgdaypi.log
file2read=/cpspb/prod/log/mar11/-rw-rw-r-- 1 cpsmod cpspb    2581 Mar 23 14:38 b
laisechgdaypi.log done=0 _ERROR_=1 _N_=1
NOTE: 1 record was read from the infile INDATA.
      The minimum record length was 65.
      The maximum record length was 65.
If I do this same command directly on the command line, I get the following:
/home/hunte022> ls -l /cpspb/prod/log/mar11/ | grep 'Mar 23'
-rw-rw-r-- 1 cpsmod cpspb    2581 Mar 23 14:38 blaisechgdaypi.log
Does anyone see what I am doing wrong?
Thanks, Nancy