Re: Text processing on VMS

Liste des GroupesRevenir à co vms 
Sujet : Re: Text processing on VMS
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vms
Date : 13. Oct 2024, 20:26:03
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <veh6s8$pplq$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 10/13/2024 2:57 PM, Dave Froble wrote:
On 10/13/2024 2:39 PM, Arne Vajhøj wrote:
On 10/13/2024 11:04 AM, David Meyer wrote:
I've got a text file with data that I want to select lines matching
certain character strings, then extract string values from the selected
lines by character position. On Unix, I would use awk or Perl. Does VMS
have a similar tool, should I use my favorite programming language and
call the STR$ RTL, can I write a TPU script to do this, or should I
transfer the file to a Unix box and user awk or Perl? ;)
>
Both Perl and gawk are available for VMS.
>
VSI distribute Perl - Alpha and Itanium here
https://vmssoftware.com/products/perl/ - x86-64 I believe comes with VMS
>
Gawk you can get from the net -
https://vms.process.com/scripts/fileserv/fileserv.com?GAWK
>
You can also use some other script language: Python, Groovy etc..
>
(I like Groovy)
>
A traditional VMS language (Cobol,Fortran,Basic,Pascal) and builtin
string functionality or STR$ calls will likely be much more code.
 Using SEARCH and then a simple Basic program is not that much work.
 For example:
 SEARCH File1.txt "some text" /output=File2.txt
 1    On Error Goto 90
 10    Open "file2" For Input as File 1%
     Open "File2" For Output as File 2%
 20    Linput #1%, Z$
     Print #2%, Mid(Z$,?,?)
     Goto 20
 90    GoTo 99 If ERR=11
     On Error GoTo 0
 99    End
 Simple
No having to know whatever is your favorite utility
I seriously doubt there would be much fewer characters
 No, I didn't try it ...
I have confidence in your VMS Basic skills.
:-)
A compound solution of SEARCH and a program is an option.
But in a relevant script language then it should be a one statement
problem (although in most cases splitting that one statement over
multiple lines is a good thing for readability).
import java.nio.file.*
Files.lines(Paths.get("login.com"))
      .filter(line -> line.contains("java"))
      .map(line -> line[2..12])
      .forEach(System.out::println)
output pos 2..12 (pos is 0 based!) from all lines of login.com
that contains "java".
Arne

Date Sujet#  Auteur
13 Oct 24 * Text processing on VMS17David Meyer
13 Oct 24 +* Re: Text processing on VMS2Chris Townley
14 Oct 24 i`- Re: Text processing on VMS1David Meyer
13 Oct 24 +- Re: Text processing on VMS1Craig A. Berry
13 Oct 24 +* Re: Text processing on VMS12Arne Vajhøj
13 Oct 24 i`* Re: Text processing on VMS11Dave Froble
13 Oct 24 i `* Re: Text processing on VMS10Arne Vajhøj
13 Oct 24 i  +* Re: Text processing on VMS5Craig A. Berry
14 Oct 24 i  i`* Re: Text processing on VMS4Arne Vajhøj
14 Oct 24 i  i +- Re: Text processing on VMS1Arne Vajhøj
14 Oct 24 i  i +- Re: Text processing on VMS1Arne Vajhøj
14 Oct 24 i  i `- Re: Text processing on VMS1Arne Vajhøj
14 Oct 24 i  `* Re: Text processing on VMS4Arne Vajhøj
14 Oct 24 i   +* Re: Text processing on VMS2Simon Clubley
14 Oct 24 i   i`- Re: Text processing on VMS1Arne Vajhøj
14 Oct 24 i   `- Re: Text processing on VMS1Dave Froble
13 Oct 24 `- Re: Text processing on VMS1Stephen Hoffman

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal