Extract by Structure
GDSII files are organized in a hierarchical structure. There must always be at least one top level cell (there can be more) and it can contain entities and references to other cells or structures. (GDSII uses the terminology structure where many IC designers use the term cell ... The actual instantiation of the cell is called a GDSII reference or SREF )
A large GDSII file could contain 500,000 or more structure definitions and millions of structure references. GDSII files are normally organized by function so very often a mid level cell represents a particular subcircuit within the chip.
In the example above, if gdsfilt is run as follows:
gdsfilt input.gds output.gds TOP -i1,3,4,5,7,8,9,10
then the entire tree will be written to the output file since the structure TOP is in fact the top level of the tree. If the user selects REG as the top level structure:
gdsfilt input.gds output.gds REG -i1,3,4,5,7,8,9,10
then only REG (and its children) will be written to the output.