I use shntool from a command line.
saying something like this without giving detailed instructions is not really useful. the average person is not going to have a clue how to do anything from a command line, or what that even is.
I was at work and didn't have time to type out specific instructions. Google could get you what you needed. In the time it took you to type that out, google would have provided the answer.
I added command line in case he/she knew that a command line was beyond them. I'm old school, so shntool is part of my arsenal of tools.
Basic join command: shntool join -n file1.wav file2.wav (this will create a single file named joined.wav)
Full list of shntool join commands:
Usage: shntool join [OPTIONS] file1 file2 [file3 ...]
Mode-specific options:
-b pad the beginning of the joined file with silence
-e pad the end of the joined file with silence (default)
-h show this help screen
-n don't pad the joined file with silence
Global options:
-D print debugging information (each one increases debugging level)
-H print times in h:mm:ss.{ff,nnn} format, instead of m:ss.{ff,nnn}
-O val overwrite existing files? val is: {[ask], always, never}
-P type progress indicator type. type is: {[pct], dot, spin, face, none}
-a str prefix 'str' to base part of output filenames
-d dir specify output directory
-i fmt specify input file format decoder and/or arguments.
format is: "fmt decoder [arg1 ... argN (%f = filename)]"
-o fmt specify output file format, extension, encoder and/or arguments.
format is: "fmt [ext=abc] [encoder [arg1 ... argN (%f = filename)]]"
-q suppress non-critical output (quiet mode)
-r val reorder input files? val is: {ask, ascii, [natural], none}
-v show version information
-w suppress warnings
-z str postfix 'str' to base part of output filenames
-- indicates that everything following it is a filename