Oh right. I read that you are using Linux but then forgot.
The first thing that you should realize is that you can put the file name after the PRINTER in the SELECT:
select filename-1 assign to printer data-name-1
Another thing to look at is the ASSIGN-PRINTER directive. Here's a bit from the documentation:
This directive has no effect if you specify a filename as part of the ASSIGN TO PRINTER clause.
ASSIGN-PRINTER"filename" causes the output to be directed to the filename specified. The filename can be fully specified, including a path-name, base-name, and extension.
ASSIGN-PRINTER() results in the same behavior as including the following COBOL statement:
select filename-1 assign to printer filename-1
That is, the filename used in your COBOL program is also used as the filename for your output. If the internal filename is too long for your operating system to handle, it is truncated to the maximum length the operating system allows.
By default, the filename does not include an extension, but you can specify an extension by using the PRINT-EXT directive.
Hope this helps!