对于 OpenCOBOL,这是一个示例标准输入/标准输出过滤程序:
   >>SOURCE FORMAT IS FIXED
  *> ***************************************************************
  *><* ===========
  *><* filter
  *><* ===========
  *><* :Author:    Brian Tiffin
  *><* :Date:      20090207
  *><* :Purpose:   Standard IO filters
  *><* :Tectonics: cobc -x filter.cob
  *> ***************************************************************
   identification division.
   program-id. filter.
   environment division.
   configuration section.
   input-output section.
   file-control.
       select standard-input assign to keyboard.
       select standard-output assign to display.
   data division.
   file section.
   fd standard-input.
       01 stdin-record     pic x(32768).
   fd standard-output.
       01 stdout-record    pic x(32768).
   working-storage section.
   01  file-status         pic x  value space.
       88 end-of-file             value high-value
          when set to false is          low-value.
  *> ***************************************************************
   procedure division.
   main section.
   00-main.
   perform 01-open
   perform 01-read
   perform
        until end-of-file
            perform 01-transform
            perform 01-write
            perform 01-read
   end-perform
   .
   00-leave.
   perform 01-close
   .
   goback.
  *> end main
   support section.
   01-open.
   open input standard-input
   open output standard-output
   .
   01-read.
   read standard-input
        at end set end-of-file to true
   end-read
   .
  *> All changes here
   01-transform.
   move stdin-record to stdout-record
   .
  *>
   01-write.
   write stdout-record end-write
   .
   01-close.
       close standard-input
       close standard-output
   .
   end program filter.
  *><*
  *><* Last Update: dd-Mmm-yyyy
这是一个使用 LINAGE 的演示,它恰好在文本文件中读取。
  *****************************************************************
  * Example of LINAGE File Descriptor
  * Author: Brian Tiffin
  * Date:   10-July-2008
  * Tectonics: $ cocb -x linage-demo.cob
  *            $ ./linage-demo <filename ["linage-demo.cob"]>
  *            $ cat -n mini-report
  *****************************************************************
   IDENTIFICATION DIVISION.
   PROGRAM-ID. linage-demo.
   ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
      select optional data-file assign to file-name
          organization is line sequential
          file status is data-file-status.
      select mini-report assign to "mini-report".
   DATA DIVISION.
   FILE SECTION.
   FD  data-file.
   01  data-record.
      88 endofdata        value high-values.
      02 data-line        pic x(80).
   FD  mini-report
      linage is 16 lines
          with footing at 15
          lines at top 2
          lines at bottom 2.
   01  report-line         pic x(80).
   WORKING-STORAGE SECTION.
   01  command-arguments   pic x(1024).
   01  file-name           pic x(160).
   01  data-file-status    pic 99.
   01  lc                  pic 99.
   01  report-line-blank.
      02 filler           pic x(18) value all "*".
      02 filler           pic x(05) value spaces.
      02 filler           pic x(34)
          VALUE "THIS PAGE INTENTIONALLY LEFT BLANK".
      02 filler           pic x(05) value spaces.
      02 filler           pic x(18) value all "*".
   01  report-line-data.
      02 body-tag         pic 9(6).
      02 line-3           pic x(74).
   01  report-line-header.
      02 filler           pic x(6) VALUE "PAGE: ".
      02 page-no          pic 9999.
      02 filler           pic x(24).
      02 filler           pic x(5) VALUE " LC: ".
      02 header-tag       pic 9(6).
      02 filler           pic x(23).
      02 filler           pic x(6) VALUE "DATE: ".
      02 page-date        pic x(6).
   01  page-count          pic 9999.
   PROCEDURE DIVISION.
   accept command-arguments from command-line end-accept.
   string
      command-arguments delimited by space
      into file-name
   end-string.
   if file-name equal spaces
      move "linage-demo.cob" to file-name
   end-if.
   open input data-file.
   read data-file
      at end
          display
               "File: " function trim(file-name) " open error"
          end-display
          go to early-exit
   end-read.
   open output mini-report.
   write report-line
      from report-line-blank
   end-write.
   move 1 to page-count.
   accept page-date from date end-accept.
   move page-count to page-no.
   write report-line
      from report-line-header
      after advancing page
   end-write.
   perform readwrite-loop until endofdata.
   display
      "Normal termination, file name: "
      function trim(file-name)
      " ending status: "
      data-file-status
   end-display.
   close mini-report.
  * Goto considered harmful?  Bah!  :)
   early-exit.
   close data-file.
   exit program.
   stop run.
  ****************************************************************
   readwrite-loop.
   move data-record to report-line-data
   move linage-counter to body-tag
   write report-line from report-line-data
      end-of-page
          add 1 to page-count end-add
          move page-count to page-no
          move linage-counter to header-tag
          write report-line from report-line-header
              after advancing page
          end-write
   end-write
   read data-file
      at end set endofdata to true
   end-read
   .
  *****************************************************************
  * Commentary
  * LINAGE is set at a 20 line logical page
  *  16 body lines
  *   2 top lines
  *   A footer line at 15 (inside the body count)
  *   2 bottom lines
  * Build with:
  * $ cobc -x -Wall -Wtruncate linage-demo.cob
  * Evaluate with:
  * $ ./linage-demo
  * This will read in linage-demo.cob and produce mini-report
  * $ cat -n mini-report
  *****************************************************************
   END PROGRAM linage-demo.
使用这些示例以及 Gilbert 的答案,您应该有足够的能力来解决您的问题,但需要注意的是,这些示例在正确的错误处理方面是害羞的,所以要小心这是家庭作业还是有偿作业。有关标准输入/输出或根据命令行参数(或缺少)的文件名的示例,请参阅 OpenCOBOL FAQ 中的 ocdoc.cob 程序。
题外话:通过 ocdoc.cob 本身的 ocdoc 传递的输出可以在http://opencobol.add1tocobol.com/ocdoc.html看到  (为什么要提到它?Pygments 的 COBOL 词典荧光笔刚刚被接受到 main 中。任何 Pygments 被拉在 1.6 版之后将允许 COBOL(无上下文)词法突出显示。)