Student needs grep command help


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Student needs grep command help
# 1  
Old 11-23-2017
Student needs grep command help

I am a Student in college struggling with Linux homework

This home work was created by my professor not out of the class text book and is frustrating me and the text book is a little frustrating as well

need help with 2 5 6
stuck on 2 currently so I know 5 and 6 will be even more frustrating for me

The contents of the smallFile is listed below.
  • Make a file on your system with that data. Assume each field is whitespace or tab separated. The format of the fields is below.
  • Do each of the 6 Displays below. Each will be a grep with regular expressions. Show the command that you used for each.
  • Do the Shell Script.
File fields format:
First_Name Last_name Degree GPA email_address Class_section
I added the " : " to try and help otherwise it was just white space
Code:
$ cat smallFile
John:Doe:ECE:3.54:doe@jd.home.org:111.222.3333
James:Davis:ECE:3.71:davis@jd.work.org:111.222.1111
Al:Davis:CS:2.63:davis@a.lakers.org:111.222.2222
Ahmad:Rashid:MBA:3.74:ahmad@mba.org:111.222.4444
Sam:Chu:ECE:3.68:chu@sam.ab.com:111.222.5555
Arun:Roy:SS:3.06:roy@ss.arts.edu:111.222.8888
Rick:Marsh:CS:2.34:marsh@a.b.org:111.222.6666
James:Adam:CS:2.77:jadam@a.b.org:111.222.7777
Art:Pohm:ECE:4.00:pohm@ap.a.org:111.222.9999
John:Clark:ECE:2.68:clark@xyz.ab.com:111.111.5555
Nabeel:Ali:EE:3.56:ali@ee.eng.edu:111.111.8888
Tom:Nelson:ECE:3.81:nelson@tn.abc.org:111.111.6666
Pat:King:SS:2.77:king@pk.xyz.org:111.111.7777
Jake:Zulu:CS:3.00:zulu@jz.sa.org:111.111.9999
John:Lee:EE:2.64:jlee@j.lee.com:111.111.2222
Sunil:Raj:ECE:3.36:raj@sr.cs.edu:111.111.3333
Charles:Right:EECS:3.31:right@cr.abc.edu:111.111.4444
Diane:Rover:ECE:3.87:rover@dr.xyz.edu:111.111.5555
Aziz:Inan:EECS:3.75:ainan@ai.abc.edu:111.111.1111
Lu:John:CS:3.06:lu.john@xyz.org:111.333.1111
Lee:Chow:EE:3.74:chow@lc.wcw.ord:111.333.2222
Adam:Giles:SS:2.54:giles@cric.org:111.333.3333
Andy:John:EECS:3.98:john@aj.ece.edu:111.333.4444

  1. Display lines, with line numbers, records of CS majors.
  2. Display lines, with line numbers, for students whose first name is John.
  3. Display lines, with line numbers, for students whose first or last name is Lee.
  4. Display lines for students whose e-mail addresses end with .org.
  5. Display lines for students with GPA above 3.69 but less than 4.0.
  6. Display lines for ECE majors with GPA 3.5 or above but less than 4.0.

Shell Script: Pick one of the grep commands that you created above. Put that grep command in a shell script. The name of the shell script is your choice. Run the shell script.
Turn in the contents of the shell script and the output of the shell script run.



attempt 1 and 2
Code:
grep -n '\<John\>' smallFile 

grep -n '\<John\>' smallFile | sort -t: +0 -1

out come
Code:
1:John:Doe:ECE:3.54:doe@jd.home.org:111.222.3333
10:John:Clark:ECE:2.68:clark@xyz.ab.com:111.111.5555
15:John:Lee:EE:2.64:jlee@j.lee.com:111.111.2222
20:Lu:John:CS:3.06:lu.john@xyz.org:111.333.1111
23:Andy:John:EECS:3.98:john@aj.ece.edu:111.333.4444

attempt 3
Code:
cat smallFile | grep John

out come
Code:
John:Doe:ECE:3.54:doe@jd.home.org:111.222.3333
John:Clark:ECE:2.68:clark@xyz.ab.com:111.111.5555
John:Lee:EE:2.64:jlee@j.lee.com:111.111.2222
Lu:John:CS:3.06:lu.john@xyz.org:111.333.1111
Andy:John:EECS:3.98:john@aj.ece.edu:111.333.4444

I need a out come of
Code:
1:John:Doe:ECE:3.54:doe@jd.home.org:111.222.3333
10:John:Clark:ECE:2.68:clark@xyz.ab.com:111.111.5555
15:John:Lee:EE:2.64:jlee@j.lee.com:111.111.2222

I am obviously not finding the information I need and need the help figuring it out

Waubonsee Community College
Sugar Grove Illinois
Professor: Tim Lippold
Linux/UNIX Operating System CIS180
Book being used is Harley Hahn's Guide to Unix and Linux

---------- Post updated at 08:24 PM ---------- Previous update was at 03:35 PM ----------

Update figured out grep command for 2

Code:
grep -n '^\<John\> smallFile

outcome

Code:
1:John:Doe:ECE:3.54:doe@jd.home.org:111.222.3333
10:John:Clark:ECE:2.68:clark@xyz.ab.com:111.111.5555
15:John:Lee:EE:2.64:jlee@j.lee.com:111.111.2222

now stuck on 5 and 6

Last edited by rbatte1; 11-24-2017 at 07:48 AM.. Reason: Set formatted bulletted list and numbered list
# 2  
Old 11-24-2017
Yes the ^ is the "beginning of the line" anchor.
Then you do not need the other \< "left word boundary" anchor.
But the \> "right word boundary" is useful so it does not match Johnny.
Even better would be the field separator, then it would not even match John-Mary. The field separator is the character : (or in the case of "space" a character set that consists of a character class [[:space:]].
For your challenge "above 3.69 below 4.0" match a 3 then a dot then a character set 7-9. Assuming that there is not a further decimal digit e.g. 3.699
Often forgotten: in a regular expression a plain . is an "any character" wildcard, so in order to match a literal dot you need to escape it \. or put it in a character set [.]

Last edited by MadeInGermany; 11-24-2017 at 03:54 AM..
# 3  
Old 11-24-2017
going to need example of the command to do that
# 4  
Old 11-24-2017
I have given you some bricks with some explanations. You need to understand and assemble.
Please show your next attempt!
# 5  
Old 11-24-2017
ok figure it out with

Code:
grep 3\.[7-9] smallFile

now I have to display lines for ECE majors with GPA 3.5 or above but less than 4.0
what would eliminate the numbers 2 and 4 before a dot

---------- Post updated at 03:42 AM ---------- Previous update was at 02:59 AM ----------

Code:
grep ECE 3\.[5-9] smallFile
grep 'ECE 3\.[5-9]' smallFile
grep ECE {3}\.[5-9] smallFile 
grep ECE '{3}\.[5-9]' smallFile

don't work to eliminate a 2or 4 before the dot
# 6  
Old 11-24-2017
Look also at your book's description of basic regular expressions (BREs) for:
  • anchors (^ and $),
  • non-matching list bracket expressions ([^list]),
  • subexpressions (\(BRE\)),
  • repetition of expressions (*), and
  • interval expressions (BRE\{min,max\} and BRE\{count\}).
Can you combine the above concepts to produce a BRE that is anchored to the start of a line (matches zero or more occurrences of characters that are not your field delimiter followed by your field delimiter) a specific number of times to skip over the contents of a specific number of fields at the start of a line?

For example, what do you think the BRE in the following grep command will match?
Code:
grep -n '^\([^:]*:\)\{4\}[^:]*\.edu:' smallFile

Try running that command. Did it print the lines you expected it to print?
What do you think the BRE in the following grep command will match?
Code:
grep -n '1$' smallFile

What happens if you combine the above two commands in a pipeline?
Code:
grep -n '^\([^:]*:\)\{4\}[^:]*\.edu:' smallFile | grep '1$'

What happens if you use a single grep to search for both BREs?
Code:
grep -n -e '^\([^:]*:\)\{4\}[^:]*\.edu:' -e '1$' smallFile

Does one of the above two suggestions provide a logical OR of the two BREs? Does one of the above two suggestions provide a logical AND of the two BREs?
# 7  
Old 11-24-2017
this worked

Code:
grep 3\.[5-9] smallFile | grep ECE

thanks for all the help it is much appreciated

now that I have been up about 20 trying to figure this out I can get some sleep now that I figure the 6 out next is shell script to be done when I wake up
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Student needs grep command assistance

I am a student in a UNIX/Linux classes having hard time with grep looking for assistance on some home work I need to figure out some kind of grep command to get a out put that only gives me information from a sample file and only list the people with the first name John the sample file is named... (1 Reply)
Discussion started by: jetoutant
1 Replies

2. UNIX for Dummies Questions & Answers

Hello Everyone - Student in Need of Help

Hi everyone. Let me just start off by saying I'm a college student and I love playing around with UNIX. I registered here because I have a UNIX shell scripting class and I am having some issues with my homework. I'm not looking for answers to the problems, just some help to get me on my way.... (1 Reply)
Discussion started by: Hexum311
1 Replies

3. UNIX for Dummies Questions & Answers

student need help!

yes im a student at Sandersville Technical College in Sandersville, Georgia. Im doing a presentation on UNIX can someone help me discribe what UNIX is and how to use it and the different features it has? (6 Replies)
Discussion started by: willnadaze
6 Replies

4. Shell Programming and Scripting

Newbie Student Need Help!

Is there anyone here that can help me with my unix assignment? I've been working on it for 3 days now. It is regarding writing a script. I've got a few questions that I need some answers. Please someone who are willing to help add me to their msn messenger: **************** In one part of... (0 Replies)
Discussion started by: DaSFLiP
0 Replies

5. Linux

Student needs help...

I know taking the easy way out isn't going to help me learn anything, but hopefully it will at least give me some guidence... I have a project and here's what I have to do... A company is currently running a Digital VAX and I have to replace it with a Linux server. There are 19 terminals... (4 Replies)
Discussion started by: MGold4357
4 Replies

6. Programming

novice student needs help

Help! I am very stuck!!! I have to produce a practical implementation of ONC RPC for an assignment and I do not know where to start. I hve done much searching on sun's site but everything is too complicated for someone with my limited knowledge. I only know the very basic unix commands and have... (1 Reply)
Discussion started by: karen79
1 Replies
Login or Register to Ask a Question