I usually use `bedtools intersect` to find overlapping regions of bed files, but it seems like this tool can only output overlap between a pair of files. I need something that can do the following from many bed files and **only** report regions contained in all of the bed files.

Example input from 4 separate bed files:  

```
chr1    50    100
chr1    60    120
chr1    30    90
chr1    50    90
```

Desired output:

```
chr1    60    90
```

Any tools for this? Maybe I should just  `cat` all the bed files together and merge them?
To intersect intervals from 1 to `N` files, simply use `bedops --intersect`:

    $ bedops --intersect A.bed B.bed ... N.bed > answer.bed

More details from the documentation: http://bedops.readthedocs.io/en/latest/content/reference/set-operations/bedops.html#intersect-i-intersect

This requires sorted BED files. You can use [BEDOPS `sort-bed`][1] to do this quickly.

I think the other toolkit suggestions now require sorted BED files, as well.


  [1]: http://bedops.readthedocs.io/en/latest/content/reference/file-management/sorting/sort-bed.html