Shell: Parsing Input

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Shell: Parsing Input
# 1  
Old 02-24-2011
Shell: Parsing Input

1. The problem statement, all variables and given/known data:

I'm fairly confident I can brute force this assignment, but let's not do that ;-).

Basically I'm required to support input such as ps aux | grep blah >> blah.txt& echo 'slslslsl'

My question is what is the best way to parse that line? I am required to use a linux based system and pure c code.

2. Relevant commands, code, scripts, algorithms:

I use strtok_r to handle breaking up the command.

3. The attempts at a solution (include all code and scripts):

I am considering building a syntax tree, but I realize it wouldn't be easy to parse because of c's lack of function overloading, no objects, etc. Perhaps I should read it token by token then?

4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

Name of School: University of Delaware
City: Newark (DE)
Country: US
Name of Professor: Dr. Swany
Course Number: CISC663 (no course link)

Edit:

This is a theoretical question~

I can handle the coding; just need to figure out the best/most flexible way of handling the input string.

I have to support "; & >> > << |".

Alright! Brute force try 1.

Lesse, I'm thinking tokenize by ";".

Tokenize again if string contains "&". Add property to command to be background command.

Now I'm not so sure what next. First off, I know that I have to read forward to detect redirection/piping. But I also have to be able to support a variable number of redirecting/pipes.

This would be much simpler if I had an OO language.

Last edited by someoney3000; 02-24-2011 at 08:24 PM.. Reason: Code tags.
# 2  
Old 02-24-2011
strtok can do the job fairly easily and does support mutiple tokens. check out flex. it's built for tasks like this if your allowed to use it. what is your desired output?

flex: The Fast Lexical Analyzer
# 3  
Old 02-24-2011
Quote:
Originally Posted by frank_rizzo
strtok can do the job fairly easily and does support mutiple tokens. check out flex. it's built for tasks like this if your allowed to use it. what is your desired output?
I don't think I'm actually allowed to use it~

Right now, I'm attempting to build an AST tree, starting simple.

First I parse ';'. Easy enough.

I'm stuck on '&' with the tokenizer though. I can't tokenize using '&' because something like 'blah blah &' won't work. I can't depend on the first occurrence because something like 'blah & blah&' won't work. So, I'm thinking of parsing it manually.

>.>

Personally, I'm going to avoid regexps since I'm not too good with them.
# 4  
Old 02-24-2011
Quote:
Originally Posted by someoney3000
I don't think I'm actually allowed to use it
which -- flex or strtok? strtok's a simple C function for splitting apart strings on delimiters. Beware that it actually modifies the input string.
# 5  
Old 03-05-2011
Oh, strtok is fine.

Sorry, I've been really busy this semester.

I ended up brute forcing it in the end Smilie

Well, don't have enough time to actually think it through.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help in parsing an input in perl

I am executing a command it is returning me something like this name ip port ------------------------------------ http-listener-1 * 6712 http-listener-2 * 8709 I have a subroutine getListenerName($porttobeChecked) This subroutine returns me the name of the listener if i pass a... (4 Replies)
Discussion started by: javaholics
4 Replies

2. Shell Programming and Scripting

Parsing C Data Tipes from Input File

Im really beginner in this case, maybe someone can help me find the answer: if my input file like this: void main(int a, int b){ int x; double y; printf("file"); } and i want output like this: int a int b int x double y A awk script that can parse only data tipe, im confused. what... (2 Replies)
Discussion started by: radynaraya
2 Replies

3. Shell Programming and Scripting

Input handling and formatting input to shell

i want to get input and depending on it create new commands for input to expect. But problem is that after giving date or month as 01-09 it is interpretation as 1-9 echo -n "ENTER DATE " read d1 echo -n "ENTER MONTH " read m1 echo -n "ENTER YEAR" read y1 o=1 i=1 d2=`expr $d1... (1 Reply)
Discussion started by: sagar_1986
1 Replies

4. Homework & Coursework Questions

Problem parsing input with awk

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I want add a line.For example:- 123456 1 1 0 1 1 0 1 0 0 0 1 5 8 0 12 10 25 its answer... (4 Replies)
Discussion started by: Arsh10
4 Replies

5. Shell Programming and Scripting

parsing using shell script

I have a file parameters.txt which contains 151524 151525 I have another file OID.csv which contains NE Version Object Type ID SDK param name Object OID test1 Start: 4.2 End: 4.2 pan 151524 speed ... (5 Replies)
Discussion started by: LavanyaP
5 Replies

6. Shell Programming and Scripting

Help parsing job script input parameters

I have a job script that runs with input parms from the command line. job.sh -p parm1_parm2_parm3_parm4_file_1.dat The parms are separated by _ The last parm is a file name and can have an _ in the name. I currently use the following commands to extract the parms parm1=`eval echo... (3 Replies)
Discussion started by: jclanc8
3 Replies

7. UNIX for Dummies Questions & Answers

Parsing name and phone as input and then print sub and marks out

I have a file like this : name phone id sub marks abc 2345 45 mat 90 bgt 6573 54 eng 89 ... .... .. ... .. ... .... .. ... .. Now i need to take in name and phone as input and then print sub and marks out, can u give me a sample code for this. P.S. If there are two of with same... (2 Replies)
Discussion started by: SasankaBITS
2 Replies

8. Shell Programming and Scripting

Parsing in korn shell

Hi Everyone, how do i parse following string from a file xyz.log in korn shell ? aa/bb{ CT{ GG{jjj/test} Thanks in advance, sweta (1 Reply)
Discussion started by: swetarati
1 Replies

9. Shell Programming and Scripting

parsing file2 with input from file1

Sorry dublication with previous thread... please delete it Hi all i need and appreciate your help creating a script in ksh for the following case Two files exists with questionmark delemeter: File1.txt: A;B;C;F;D;K; File2.txt A,name,address1; K,name,surname,phone; C,name,phone;... (1 Reply)
Discussion started by: forumsgr
1 Replies

10. Shell Programming and Scripting

Parsing input paramter in a script

Hi folks I am having a little trouble in parsing a variable read into a ksh script I have a bunch of variables passed into script test.ksh HOST SERVER JOB1 JOB2 JOB3 JOB4 JOB5 What I want to do is read all the $JOB variables ($JOB1, $JOB2, $JOB3) into a variable and then read that variable... (2 Replies)
Discussion started by: Anubhav
2 Replies
Login or Register to Ask a Question