[Help] Grep, Variables, IF statements... Fun


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Help] Grep, Variables, IF statements... Fun
# 1  
Old 02-16-2013
Code [Help] Grep, Variables, IF statements... Fun

Hello, this will be my first post. I've been browsing around for a bit and have found a lot of useful information on here, hopefully a solution can be provided to me.

Issue:

Alright, I am looking to search for strings within a file using variables.

I have a script that will accept 3 or 4 parameters, 3 is required 4th isn't mandatory.

I would like to search the text file for the 3 parameters matching within the same line, if they do match then I want to remove that line and replace it with my new one, basically it would update the 4th parameter if set, and avoid duplicate entries.


Currently this is what I have gotten:

input= egrep -e '$domain\s+$type\s+$item' ~/etc/security/limits.conf

if [ "$input" == "" ]; then

echo $domain $type $item $value >>~/etc/security/limits.conf

echo \"$domain\" \"$type\" \"$item\" \"$value\" has been successfully added to your limits.conf file.


else
cat ~/etc/security/limits.conf | egrep -v "$domain|$type|$item" >~/etc/security/limits.conf1
rm -rf ~/etc/security/limits.conf
mv ~/etc/security/limits.conf1 ~/etc/security/limits.conf

echo $domain $type $item $value >>~/etc/security/limits.conf

echo \"$domain\" \"$type\" \"$item\" \"$value\" has been successfully added to your limits.conf file.
exit 0
fi


Now I already know that the input=egrep etc.. will not work, it works if I hard code some values but it won't accept that variables. Basically I have domain=$1, type=$2 and so on.

I would like it so that if all 3 variables are not matched within ONE line, than it will just append the parameters to the end of the file, BUT if the parameters do match then I want them to be deleted. and appended to the file. I know I can use other things like sed and awk, but I have yet to learn it, I don't mind learning how to use other commands if there's any express lessons that could be given to me for this instance before I start learning them in class.

This is for a school assignment, and all help is very much appreciated, but I'd also like to learn why and how it works/doesn't so if you can provide answers to that as well that would be great !

Not quite sure if my "if statement" used to decide between if the parameters exist or not is even that strong or good, but I am new to programming, scripting "bashing" so I welcome all constructive criticism

Thank you,
Jon

Last edited by JonLaberge; 02-17-2013 at 12:01 AM.. Reason: Forgot to mention.
# 2  
Old 02-17-2013
You may try this
Code:
cat ~/etc/security/limits.conf | grep -vP '^*$1*$2*$3' >newfile


make sure you have validated your argument. i'm skipping that
# 3  
Old 02-17-2013
Do not post classroom or homework problems in the main forums. Homework and coursework questions can only be posted in this forum under special homework rules.

Please review the rules, which you agreed to when you registered, if you have not already done so.

More-than-likely, posting homework in the main forums has resulting in a forum infraction. If you did not post homework, please explain the company you work for and the nature of the problem you are working on.

If you did post homework in the main forums, please review the guidelines for posting homework and repost.

Thank You.

The UNIX and Linux Forums.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using $variables in grep

Hi, I'm currently trying to use variables in grep on my script. Printing the variable via echo works fine. Also, if I hard coded the date of the appointment it works just fine. But, if I try to use the $DATE as an argument in grep it doesn't do anything. #!/bin/bash DATE=${2}/${3}/${1} ... (6 Replies)
Discussion started by: nuclearpenguin
6 Replies

2. Homework & Coursework Questions

Grep, Variables, IF statements... Fun

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: The issue I am having is part of a validation problem. My script will validate 3 or 4 parameters entered by the... (4 Replies)
Discussion started by: JonLaberge
4 Replies

3. Shell Programming and Scripting

grep and variables ?

I would like to know if grep can extract the following requirement. I have the folllowing piece of SQL in a file and need to grep the FROM part. mp db-ter-fast-export C100_Input_Target_Table__table_ "${DB}"'/teradata.dbc' -select 'SELECT UPPER(trim(proj_id)) as proj_id, latest_job_id,... (9 Replies)
Discussion started by: anduzzi
9 Replies

4. Shell Programming and Scripting

grep variables nested within grep

Help, I have a ksh script that has some variables within the grep command, I am then setting another variable that greps the variables that have greps within them. cat $WORKINGDIR/meter_list.txt | while read meter do serialnum=$(cat masterlogfile.txt | grep "$meter" | awk '{ print $19 }'... (7 Replies)
Discussion started by: srichard9
7 Replies

5. Programming

Grep with C variables.

Hi all, I have a problem, I need a grep -v but, the patterns of the grep should be C variables. Example: char var1="h"; char var2="o"; char var3="d"; system("grep -v \"var1 var2 var3\" file.txt"); ---- ---- ---- I try it but... Can u help me? Thanks beforehand P.S. Sorry for... (4 Replies)
Discussion started by: AbelBs
4 Replies

6. Shell Programming and Scripting

combine two grep statements

Hi I am wondering is it possible to combine two greps together I have two greps. grep "^,, *\." file (grep the line which has a '.' in the third column) grep "=" file (grep the line which has = anywhere) How to put them together so that if the content of the file that match either... (1 Reply)
Discussion started by: tiger66
1 Replies

7. Shell Programming and Scripting

put value of multiple sql statements into unix variables

i want to use multple sql count statements and store these count values in unix variable but in one connection only i.e. in only 1 time database should be hit ,which is the main requirement. (1 Reply)
Discussion started by: sw@pnil
1 Replies

8. Shell Programming and Scripting

awk as grep with variables

i have such awk working fine but how to use variable instead of strings awk '/asdasd.*asda.*asdasd/' file2.txt This is not working: awk '/${a}.*${b}.*${c}/' file2.txt Thanks & regards Peter (7 Replies)
Discussion started by: pp56825
7 Replies

9. UNIX for Advanced & Expert Users

SQLPLUS and update statements using bind variables

Hello- The code below works fine expect that it does not update the table CTL_INTERFACE "red highlight". Any idea what I'm doing wrong here? Thanks:D # coNNECT to the database and insert a row then get the new row id cycle_id=`sqlplus -S $XXX_USER/$XXX_PW@$XXX_CONNECT << EOF SET ECHO... (3 Replies)
Discussion started by: Nomaad
3 Replies

10. Shell Programming and Scripting

Using grep with variables

Being new to shell scripting I hope this question isn't too elementary but here goes. I run a grep statement - grep 'sqr' sqrmodule.par and the grep statement returns correctly the information that I'm looking for. Now I want to take the output from the grep statement and load it into a... (2 Replies)
Discussion started by: gettingstarted
2 Replies
Login or Register to Ask a Question