Предполагая, что вам нужно что-нибудь в первом столбце ниже строки, начинающейся с '-'
Вы можете попробовать следующее в командном файле, например, extract_if.com
$ IF P1 .EQS. "" THEN GOTO nothing_specified
$ IF F$SEARCH( P1 ) .EQS. "" THEN GOTO file_not_found
$ parse_line = 0
$ OPEN/READ/ERROR=file_open_error infile 'P1'
$read_loop:
$ READ/ERROR=file_read_error/END_OF_FILE=end_of_file infile inline
$ IF F$LENGTH( F$EDIT( inline, "TRIM" ) ) .EQ. 0 THEN GOTO read_loop
$ IF parse_line .EQ. 1
$ THEN
$ interface = F$ELEMENT( 0, " ", F$EDIT( inline, "TRIM,COMPRESS" ) )
$ WRITE SYS$OUTPUT F$FAO( "Begin-interface: !AS", interface )
$ ELSE
$ parse_line = ( F$EXTRACT( 0,1,inline ) .EQS. "-" )
$ ENDIF
$ GOTO read_loop
$nothing_specified:
$ WRITE SYS$OUTPUT "No file specified"
$ GOTO finished
$file_not_found:
$ WRITE SYS$OUTPUT F$FAO( "File !AS not found", P1 )
$ GOTO finished
$file_open_error:
$ WRITE SYS$OUTPUT F$FAO( "Error opening file !AS", P1 )
$ GOTO finished
$file_read_error:
$ WRITE SYS$OUTPUT F$FAO( "Error reading from file !AS", P1 )
$ GOTO close_file
$end_of_file:
$close_file:
$ IF F$TRNLNM("infile").NES."" THEN CLOSE infile
$finished:
$ EXIT
Запустите этот скрипт, используя:
$ @extract_if test.txt
Вывод должен быть таким, как указано.
Кажется, вы знакомы с AWK. Вы также можете установить GAWK для OpenVMS.