Help with an (easy) parser


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with an (easy) parser
# 8  
Old 07-15-2008
Quote:
Originally Posted by aristegui
I'm trying to use csplit, LibDav.mol2 is the original file

csplit -k -f LibDav LibDav.mol2 %@\<TRIPOS\>MOLECULE%

but LibDav00 and LibDav.mol2 are the same file. Any suggestions? Thank you in advanced.
You are getting the correct result according to what you have told csplit to do. Try the following if you are using the GNU version of csplit
Code:
csplit -k -f LibDav LibDav.mol2 /@<TRIPOS>MOLECULE/  {*}

Otherwise you need to tell csplit how many times to repeat the pattern e.g.
Code:
csplit -k -f LibDav LibDav.mol2 /@<TRIPOS>MOLECULE/  {24}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Making a parser

input 1..100km 112..403km 500..623km required output 1..51 112..162 500..550 (i.e 50kms added to the initial distance) (2 Replies)
Discussion started by: ANKIT ROY
2 Replies

2. Shell Programming and Scripting

Parser

Hi All, I am trying to create a parser to find out what cobol programs are being called by which JCL's. I need to search recursively until the main cobol program is found being called by a JCL. I tried to create a script but I am not able to generalize it. Can someone please help. ... (1 Reply)
Discussion started by: nua7
1 Replies

3. Shell Programming and Scripting

SQL Parser

Hi, I have been assigned a task to migrate few thousands of sql scripts to a different db format. there could be sub queries and complex joins. there would be functions that needs to be replaced from a given list to another values. this should also parse the sub\inline queries. Can you please... (1 Reply)
Discussion started by: hitmansilentass
1 Replies

4. Shell Programming and Scripting

File Parser

Hi need help parsing a file. I have tag fields and values in a file with delimiter |. sample records from the file listed below 8=value|9=value|35=value|49=value|56=value|34=value|50=value|48=value|10=value 8=value|9=value|35=value|49=value|56=value|34=value|51=value|48=value|10=value... (2 Replies)
Discussion started by: subramanian
2 Replies

5. Programming

Parser

Hi Everyone I have an out put of multiple lines which I would like to parse and retrieve certain info from it. The output consists of multiple sections that starts with the line Client: and ends with STL tag: each section separated by an empty line. So basically somehting like Client: ... (10 Replies)
Discussion started by: bombcan1
10 Replies

6. Shell Programming and Scripting

Parser with sed

Hi, I have this variable: <a href="http://www.rtve.es/mediateca/videos/20100916/video-calamares-rellenos-salsa-pimientos-garbanzos-16-09-10/878586.shtml">V�deo: Calamares rellenos con salsa de pimientos y ...</a> I would like to have: ... (7 Replies)
Discussion started by: mierdatuti
7 Replies

7. Shell Programming and Scripting

need a text parser

i need a simple text parser which can parse a data file created by a softwre so that i can export it to my mysqldb,, datafile created as one record per line with different number of fields. e.g datafile contains following. a=1, b=3, c=4 a=1, c=55, d=abcd a=5, b=hello, c=99, d=help now i... (12 Replies)
Discussion started by: sfaizan
12 Replies

8. Shell Programming and Scripting

Text Parser

I am having a text file as follows say server.txt Date Time server ip error code -------------------------------------------------------------------------- 02/21/2008 18:10:14 server1 xxx.xxx.xxx.xxx 6 02/21/2008 08:10:14 server2 ... (8 Replies)
Discussion started by: karthikn7974
8 Replies

9. UNIX for Dummies Questions & Answers

Need help on installing an EASY to use and easy to install command line text editor

Hi again. Sorry if it seems like I'm spamming the boards a bit, but I figured I might as well ask all the questions I need answers to at once, and hopefully at least get some. I have installed Solaris 10 on a server. The default text editors are there (vi, ex, ed, maybe others, I know emacs is... (4 Replies)
Discussion started by: EugeneG
4 Replies

10. Shell Programming and Scripting

string parser

I am new to scripting I want to parse a string in a loop eg A:B:C:D E:F:G:H and put them in different variable attr1 = A attr2 = B attr3 = C attr4 = D . . /* do processing with attr1, attr2, attr3 and attr4 */ then go to next line E:F:G:H and again assign... (8 Replies)
Discussion started by: flextronics
8 Replies
Login or Register to Ask a Question
JE::Parser(3pm) 					User Contributed Perl Documentation					   JE::Parser(3pm)

NAME
JE::Parser - Framework for customising JE's parser SYNOPSIS
use JE; use JE::Parser; $je = new JE; $p = new JE::Parser $je; # or: $p = $je->new_parser $p->delete_statement('for', 'while', 'do'); # disable loops $p->add_statement(try => &parser); # replace existing 'try' statement DESCRIPTION
This allows one to change the list of statement types that the parser looks for. For instance, one could disable loops for a mini- JavaScript, or add extensions to the language, such as the 'catch-if' clause of a "try" statement. As yet, "delete_statement" works, but I've not finished designing the API for "add_statement". I might provide an API for extending expressions, if I can resolve the complications caused by the 'new' operator. If anyone else wants to have a go at it, be my guest. :-) METHODS
$p = new JE::Parser Creates a new parser object. $p->add_statement($name, &parser); This adds a new statement (source element, to be precise) type to the list of statements types the parser supports. If a statement type called $name already exists, it will be replaced. Otherwise, the new statement type will be added to the top of the list. ($name ought to be optional; it should only be necessary if one wants to delete it afterwards or rearrange the list.) If the name of a statement type begins with a hyphen, it is only allowed at the 'program' level, not within compound statements. Function declarations use this. Maybe this convention is too unintuitive.... (Does anyone think I should change it? What should I change it too?) &parser will need to parse code contained in $_ starting at "pos()", then either return an object, list or coderef (see below) and set "pos()" to the position of the next token[1], or, if it could not parse anything, return undef and reset "pos()" to its initial value if it changed. [1] I.e., it is expected to move "pos" past any trailing whitespace. The return value of &parser can be one of the following: 1) An object with an "eval" method, that will execute the statement, and/or an "init" method, which will be called before the code runs. 2) (Not yet supported!) A coderef, which will be called when the code is executed. 3) (Not yet supported.) A hash-style list, the two keys being "eval" and "init" (corresponding to the methods under item 1) and the values being coderefs; i.e.: ( init => &init_sub, eval => &eval_sub ) Maybe we need support for a JavaScript function to be called to handnle the statement. $p->delete_statement(@names); Deletes the given statement types and returns $p. $p->statement_list (Not yet implemented.) Returns an array ref of the names of the various statement types. You can rearrange this list, but it is up to you to make sure you do not add to it any statement types that have not been added via "add_statement" (or were not there by default). The statement types in the list will be tried in order, except that items beginning with a hyphen always come before other items. The default list is "qw/-function block empty if while with for switch try labelled var do continue break return throw expr/" $p->parse($code) Parses the $code and returns a parse tree (JE::Code object). $p->eval($code) Shorthand for $p->parse($code)->execute; EXPORTS
None by default. You may choose to export the following: Exported Variables ... blah blah blah ... Exported Functions These all have "()" for their prototype, except for "expected" which has "($)". ... blah blah blah ... SYNTAX ERRORS
(To be written) expected 'aaaa'; # will be changed to 'Expected aaaa but found....' die \"You can't put a doodad after a frombiggle!"; # complete message die 'aoenstuhoeanthu'; # big no-no (the error is propagated) EXAMPLES
Mini JavaScript This is an example of a mini JavaScript that does not allow loops or the creation of functions. use JE; $j = new JE; $p = $j->new_parser; $p->delete_statement('for','while','do','-function'); Since function expressions could still create functions, we need to remove the Function prototype object. Someone might then try to put it back with "Function = parseInt.constructor", so we'll overwrite Function with an undeletable read-only undefined property. $j->prop({ name => 'Function', value => undef, readonly => 1, dontdel => 1 }); Then, after this, we call "$p->eval('...')" to run JS code. Perl-style for(LIST) loop Well, after writing this example, it seems to me this API is not sufficient.... This example doesn't actually work yet. use JE; use JE::Parser qw'$s ident expr statement expected'; $j = new JE; $p = $j->new_parser; $p->add_statement('for-list', sub { /Gfor$s/cog or return; my $loopvar = ident or return; /G$s($s/cog or return; my @expressions; do { # This line doesn't actually work properly because # 'expr' will gobble up all the commas @expressions == push @expressions, expr and return; # If nothing gets pushed on to the # list, we need to give the default # 'for' handler a chance, instead of # throwing an error. } while /G$s,$s/cog; my $statement = statement or expected 'statement'; return bless { var => $loopvar, expressions => @expressions, statement => $statement }, 'Local::JEx::ForList'; } ); package Local::JEx::ForList; sub eval { my $self = shift; local $JE::Code::scope = bless [@$JE::Code::scope], 'JE::Scope'; # I've got to come up with a better interface than this. my $obj = $JE::Code::global->eval('new Object'); push @$JE::Code::scope, $obj; for (@{$self->{expressions}}) { $obj->{ $self->{loopvar} } = $_->eval; $self->{statement}->execute; } } SEE ALSO
JE and JE::Code. perl v5.14.2 2012-03-18 JE::Parser(3pm)