--dc--adobecom.hlx.page/dc-shared/assets/images/frictionless/how-to-images/merge-pdf-how-to.svg A stack of PDFs with an arrow pointing to one document showing a file merging process that's easy with Adobe merge pdf tool
--dc--adobecom.hlx.page/dc-shared/assets/images/shared-images/frictionless/seo-icons/combine-pdfs.svg Three document icons with an arrow pointing to a single document to show how easy it is combining PDF files into one with Adobe Acrobat.
--dc--adobecom.hlx.page/dc-shared/assets/images/shared-images/frictionless/seo-icons/download-and-share.svg A download arrow with a small cloud showing that you can easily download your merged file
--dc--adobecom.hlx.page/dc-shared/assets/images/shared-images/frictionless/seo-icons/work-in-any-browser.svg Two browser icons with a mouse arrow pointing to an Acrobat PDF to show that you can work with PDFs in any browser
When you combine PDF files with the Acrobat PDF merge tool, you can reorder, add, or delete files before you merge them into a single PDF. Sign in if you need to reorganize individual pages in your merged PDF. You can add, delete, move, or rotate PDF pages as needed until your content is in the desired order. When ready, share your merged file with others for viewing or commenting. Anyone can view the file in any web browser like Google Chrome using their preferred operating system, including Mac, Windows, and Linux.
You can also try Adobe Acrobat Pro for free for seven days to create PDFs, edit PDFs with PDF editor tools, add page numbers, insert bookmarks or watermarks, split PDF files, secure PDFs with passwords, convert PNG and other image files to and from PDF, and convert PDFs to and from Microsoft PowerPoint, Excel, and Word documents.
When Windows Explorer sorts files, it first sorts files from directories and only then sorts each group using the sort specified (My default is DateCreated). I don't like this as the default behavior.
It still sorts files and folders separately, but at least they're grouped together. Which solved the problem for me because I wanted to drag a file created today into a folder created today but there was lots of crap in their containing folder so it would require a bunch of scrolling without this.
Without any third party tools, the most adequate solution seems to be a search for a wildcard (*.*) selection in the folder containing the files and folder results you wish to interlace, and then sorting by name.
Tested in Win7 & Win10. In the Explorer search field (upper right). Use the "folder:" filter and then use the full path to the target folder in double quotes. By target folder, I mean the one that you would like to view with folders mixed with files. i.e. Your current directory.
Close the window by pressing the Ctrl key and (with this key pressed) clicking the x button at the right top of Windows Explorer.You may need to repeat this for each folder type, since Windows keeps different default options according to folder types (image folders, document folders, etc). After a while you will need to repeat the first and the third step, since Windows will revert to its default sorting options after you have opened some (thousands of) times the Windows Explorer.
If you don't need random access into the final big file (i.e., you just read it through once from start to finish), you can make your hundreds of intermediate files appear as one. Where you would normally do
You may also be able to save time and space by splitting your input and doing the processing at the same time; GNU Parallel has a --pipe switch that will do precisely this. It can also reassemble the outputs back into one big file, potentially using less scratch space as it only needs to keep number-of-cores pieces on disk at once. If you are literally running your hundreds of processes at the same time, Parallel will greatly improve your efficiency by letting you tune the amount of parallelism to your machine. I highly recommend it.
The reason it isn't practical to just join files that way at a filesystem level because text files don't usually fill a disk block exactly, so the data in subsequent files would have to be moved up to fill in the gaps, causing a bunch of reads/writes anyway.
Is it possible for you to simply not split the file? Instead process the file in chunks by setting the file pointer in each of your parallel workers. If the file needs to be processed in a line oriented way, that makes it trickier but it can still be done. Each worker needs to understand that rather than starting at the offset you give it, it must first seek byte by byte to the next newline +1. Each worker must also understand that it does not process the set amount of bytes you give it but must process up the the first newline after the set amount of bytes it is allocated to process.
The actual allocation and setting of the file pointer is pretty straightforward. If there are n workers, each one processes n/file size bytes and the file pointer starts at the worker number * n/file_size.
Fast, but not free solution? Get an SSD drive or flash PCIe based storage. If this is something that has to be done on a regular basis, increasing disk IO speed is going to be the most cost effective and fastest speedup you can get.
A better way of doing this would be to use random access reads into the file over the desired ranges and never actually split it up and process only the number of files as the number of physical CPU/Cores in the machine. That is unless that is swamping the disk with IOPS as well, then you should cut back until the disk isn't the bottleneck.
A transparent solution that would be probably be more work than is worth it unless this is an ongoing daily issue/problem is to write a custom FUSE filesystem that represents a single file as multiple files. There are lots of examples on dealing with archive files contents as individual files that would show you the basics of how to do this.
cat is not the right tool for this job. The MP3 format has all sorts of junk that can lurk at the front and end of the file and this needs to be strippe out. mp3wrap is what you want. It will exclude any metadata in the files and stick the audio together.
Before you do that, run ls *.mp3 to check that they're in the correct order. When I originally wrote this answer (over six years ago!) wildcard globs apparently didn't behave well but I think they do now.
mp3wrap seems to be a decent enough solution, but when I played the resulting file, the timestamp wasn't correct. It seems like mp3wrap is best used when you're joining mp3s into a file that you know you'll want to split later.
As previously suggested, mp3wrap is a good solution. It may not work all of the time though. As far as I know, mp3wrap assumes that all the input files have the same characteristics such as VBR vs CBR, bitrate, and so on. If this assumption isn't met, it is likely to fail. In that case, the only solution would be to decode all the mp3files to a raw format like .wav, concatenate them with a program like sox and finish by re-encoding all to mp3.
mp3wrap joins mp3 files into a special "concatenated mp3 file" format, which is faster because it doesn't require re-encoding, but has the disadvantage of not being a normal mp3 file with a length and so on.
ffmpeg -i "concat:file1.mp3file2.mp3" -acodec copy output.mp3 is cumbersome to type, but should work well, as it's a standard command to use for joining video files for example. However, in my testing it introduces glitches at the input file transitions.
However, if I use mpg123 to decode the mp3 files to .wav, then I can join the .wav files with Sox and not hear glitches. This suggests that the problem with sox (and maybe ffmpeg) is in the decoding of the mp3 files.
It's curious that no one mentioned mpg123 yet. Although troubled by security and license issues early in its 20+ year history, it is one of the original mp3 players and should be fairly stable. Since it automatically concatenates its mp3 arguments (in a glitch-less fashion) before sending them to the sound card, we just have to use the -w option to tell it to output to a Wave file instead. Then lame encodes this back to mp3. Here's a script which accomplishes this:
thank you - one other question - these are files for language learning and the individual files have no space for repetition so I need to add 3 or 4 seconds or more to each file before merging them - is there some way to add the silent 3 or 4 seconds to all the files before going to merge them? such as selecting all and appending the silent space?
thank you - I am not so experienced with Audacity and I am having problems trying to reproduce your instructions. Specifically I am not able to get the cursor to Home and stay there. After I try that and move my mouse to generate silence the cursor follows across the screen to where the mouse goes to generate silence. I am not understanding how to keep the cursor fixed at home while the mouse goes to the next step. What am I missing? I feel a bit dumb asking. Sorry.
I have four sets of data files in Excel (see attached for simplified version) and want to combine them into one file. I used Union to bring them together and then used the common field - Description to Summarize the data in order to get the following output. However, some data dropped from Union. What should be done differently to include all data in the below expected format and results? Thanks!
Thank you for the prompt help! The method 1 is close the results I am looking for, but R - Box 1 and R - Box 2 were not brought in (I wonder if they were dropped from Union and that was what happened to me) and the value in RA - Box has displayed twice for EEE and FFF. Because R - Box 1 and R - Box 2 were not brought in, it caused error to Summarize tool in method 2. Any way to resolve this?
I have read masses of items on the web re this but failed to find a satisfactory answer. I want a way to QUICKLY combine two fairly large mp4 files - about 1.8GB each and in identical format straight off a video camera. At present I use mpeg Streamclip which is great and does the job in about a minute or so. However it looks as if it will not be made 64bit and will therefore shortly die. Using 'cat' script technique in terminal works fine with .mts files but with mp4 seems to have the (known) problem of combining the files but Quicktime etc only sees the first file due to some header issue which I (as a non expert) don't fully understand - and the solutions to that are more than a bit over my head. I know I can just add the files to Quicktime (or other software apps) and EXPORT but that is slow - for my purpose speed is important. Any ideas out there??
c80f0f1006