| Here is a Linux script I use for this very purpose.  As an example, if you wish to see all packets on udp.port == 1719 and save the output to a file UDP1719.cap then do: 
 MergePackets.sh "MyFiles*" "udp.port == 1719" UDP1719.cap
 
 ~/bin$ cat MergePackets.sh
 #!/bin/sh
 
 if [ "$2x" = "x" ];
 then
 echo "$0 <Path> <DisplayFilter> [<OutputFile>]"
 echo " "
 echo "The purpose of this script is to take all capture files in a directory"
 echo "and create a  single file that is filtered based on the input string."
 echo " "
 echo "This string could be an IP address, \"ip.addr == 1.1.1.1\""
 echo "or a port nunmber \"tcp.port == 1720\", etc."
 echo " "
 echo "The input must be in a display filter format."
 echo " "
 echo "If you are using a wildcard in the <Path>, please inclose with \" \" marks"
 echo "
 "
 echo "If OutputFile is not specified, the output will be to stdout"
 echo " "
 echo "********************** NOTICE ******************************"
 echo "This script will run under LINUX only:"
 echo "With proper changes this script could run on a windows PC."
 echo "If you do so, do with care!!!"
 exit 1
 fi
 
 # Wireshark or Ethereal
 SHARK=tshark
 #SHARK=tethereal
 
 # Create file list
 FILELIST=`ls $1`
 TEMPDIR=/tmp/foobar
 mkdir $TEMPDIR
 i=1
 for I in $FILELIST;
 do
 echo "$i $I $2"
 $SHARK -r $I -w $TEMPDIR/~$I-$i -R "$2" &>/dev/null
 i=`echo $i+1|bc`
 done
 
 if [ "$3x" = "x" ];
 then
 # if here use stdout
 OUTFILE="-"
 else
 OUTFILE=$3
 fi
 
 mergecap -w $OUTFILE $TEMPDIR/~*
 rm -r $TEMPDIR
 
 Enjoy.  Your mileage may very.
 Alex Lindberg
 
 --- On Tue, 3/3/09, Guy Harris <guy@xxxxxxxxxxxx> wrote:
 
 From: Guy Harris <guy@xxxxxxxxxxxx>Subject: Re: [Wireshark-users] Reading multiple files in tcpdump
 To: hjazz6@xxxxxxxxx, "Community support list for Wireshark" <wireshark-users@xxxxxxxxxxxxx>
 Date: Tuesday, March 3, 2009, 9:29 PM
 
 
 On Mar 3, 2009, at 7:01 PM, Rayne wrote:
 > I have multiple trace files all beginning with the prefix
 "trace1_"
 > and I would like to read all these files, apply a filter on them and
 > write the filtered packets into another pcap file.
 >
 > I've tried both reading from trace1* and listing all
 the filenames
 > after the -r option, but I keep getting syntax error.
 
 That's because you can give only one argument to the "-r" flag
 (or any
 flag that takes an argument - and that's the case for most, if not
 all, command-line flags on UN*X).
 
 > Can I read multiple files in tcpdump
 
 No.  tcpdump will read only one file.
 
 I assume your goal is to combine all the packets from all the traces,
 and write out a subset of those packets, selected by a filter, to
 another file.  If so, you could, as Stephen Fisher said, use mergecap
 to combine them into a file and then read the file with tcpdump and
 have it write the filtered packets to another file.  It might also be
 possible to pipe mergecap's output to its standard output, and pipe it
 to a tcpdump that you've told to read from its standard input, and
 avoid the intermediate
 file.
 ___________________________________________________________________________
 Sent via:    Wireshark-users mailing list <wireshark-users@xxxxxxxxxxxxx>
 Archives:    http://www.wireshark.org/lists/wireshark-users
 Unsubscribe: https://wireshark.org/mailman/options/wireshark-users
 mailto:wireshark-users-request@xxxxxxxxxxxxx?subject=unsubscribe
 
 |