On Thu, Nov 10, 2011 at 8:34 AM, Ric Sherlock <[email protected]> wrote: > On Thu, Nov 10, 2011 at 7:17 AM, Skip Cave <[email protected]> wrote: >> OK, Now I am working on real data. >> >> This works: >> >> getSkipsTags =: ('RESULT[0]';crlf,'CONFIDENCE' >> )& getTagContents >> > getSkipsTags shell zipth, filepth >> = u s air one ninety one >> = yes >> >> So, I have captured the strings I want from the log.gz file. If I put the >> result in a noun like this: >> >> bb =: > getSkipsTags shell zipth, filepth >> >> Now I can operate on the noun to replace the equals sign with a blank, and >> then remove all the spaces by this: >> >> deb "1 bb rplc"1 '= ' >> u s air one ninety one >> yes > > Kip has sorted your initial problem. I just have a couple of comments > on the code. > Firstly I'd be hesitant to include the CR,LF,TAB as part of the endtag > unless the file format is really specified like that. > For single character substitutions I think that charsub (also in the > strings script) is more performant. Here are the in-script docs for > it: > > NB. ========================================================= > NB.*charsub v character substitution > NB. characterpairs charsub string > NB. For example: > NB. '-_$ ' charsub '$123 -456 -789' > NB. 123 _456 _789 > NB. Use <rplc> for arbitrary string replacement. > NB. > NB. thanks to Dan Bron/Jforum 25 April 2006 > > Lastly when dealing with lists (e.g. strings) of different lengths I > usually use boxing to prevent the issues you have discussed around J > adding padding to regularize the array. > bb =: getSkipsTags shell zipth, filepth > deb each '= ' charsub each bb
Whoops the line above won't work sorry. Needs to be: deb each '= '&charsub each bb or deb each (<'= ') charsub each bb ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
