[Casper] How's your sed-fu?

Ryan Harter rharter at uwsp.edu
Fri Oct 31 10:54:51 PDT 2008


Hi Miles-

I've come to use awk more.  It has a bit of a learning curve, but  
seems quite a bit more powerful.

Here's what I would use:

> #!/bin/bash
>
> line1=`grep SERVER test.txt | awk -F" = " '{print $1 " =  
> newvalue"}'`    #returns SERVER = newvalue
> line2=`grep CLIENT_NAME test.txt | awk -F" = " '{print $1 " =  
> newname"}`    #returns CLIENT_NAME = newname
>
> # Then overwrite the file
> echo "$line1" > test.txt
> echo "$line2" >> test.txt
>
> exit 0

NOTE: Make sure you have the block quotes (``) around the grep/awk  
commands so the variable gets what is returned from the commands, not  
the string.

The grep command will pull out just that line, then awk will use " = "  
as a delimiter (with the F command) and then print $1 (first value in  
delimited list, SERVER) and the the string in quotes.

Then you just use echo and the greater thans to overwrite and append  
to the file.

Hope this helps

Ryan Harter
UW - Stevens Point
Workstation Developer
715.346.2716
Ryan.Harter at uwsp.edu

On Oct 31, 2008, at 11:03 AM, Miles Leacy wrote:

> I have a configuration file for an application that contains two  
> lines of text:
>
> SERVER = server.domain.ext
> CLIENT_NAME = client.domain.ext
>
> I'd like to be able to change these lines with a simple script. I  
> think sed can get me there, but I'm having a little trouble getting  
> it just right.
>
> I've figured out how to replace "server.domain.ext" with  
> "somethingelse" if I know what the server.domain.ext string is. I  
> don't want to rely on knowing what the existing string is. What I  
> want to do is replace everything after "SERVER = " with a string of  
> my choosing.
>
> Any of the fine minds on these boards have and idea?
>
> Thanks in advance,
> Miles
>
> <ATT00001.txt>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.jamfsoftware.com/pipermail/casper/attachments/20081031/7efb8ffe/attachment.html 


More information about the Casper mailing list