Programming :: Sed Doesn't Accept Variables To Replace In File
Mar 17, 2011
[code]...
The variables are clean and available in my script. No prob. $old is an IP-address of a server, $new as well. replacement-file is an xml-file (the ip-address to be changed is within an xml-tag). It should be trivial, but it isn't. I spent the last 3 hours reading about the problem, trying several different 'solutions' or workarounds. It should work, the '"' should take care that the variables get expanded, but whatever I try the old server IP isn't replaced.
View 7 Replies
ADVERTISEMENT
Jul 28, 2011
I have a large number of log files, on a linux box, I need to cleanse sensitive data from before sending to a third party. I have used the below script on previous occasions to perform this task, and it has worked brilliantly (script was built with some help from here :-)
#!/bin/bash
help_text () {
cat <<EOF
Usage: $0 [log_directory] [client_name(s)]
EOF
[Code]...
However, now one of our departments has sent me a CLIENT_FILE.txt with 425000+ variables! I think I may have hit some internal limit. I have tried splitting the client file into 4 with around 100000 variables in each, this still doesn't work. I'm loathe to keep splitting though as I have 20 directories with up to 190 files in each directory to run through. The more client files I make, the more passes I have to do.
View 2 Replies
View Related
Apr 19, 2010
I'm building a simple(?) socket server using threads to serve up a few requests. The spec is such that I have to listen to three ports at once, so I decided to use pthread to create three separate threads that would wait for connections, then spawn new threads to handle them.
The problem is that when I do this, for some reason the program never enters the wait loop and instead terminates (All three threads did get created since the messages get printed properly.) It gets to the line which prints "???", but not the line after the accept() call.I don't see an open port when I check for one either so I'm 99% sure they're terminating.Basically I have a main() method which has three calls to pthread_create, which should result in three threads being run that all wait for connections (listenOnPort). After each thread creation I print some info to make sure it's actually being created.
By the way, when I just run listenOnPortwithout threading, the server appears to enter the loop correctly and seems to be waiting for requests. It's only when I run the functions as threads that the problem seems to happen.The source is attached below. Any help will be appreciated. Much of the code is borrowed from a website (I can't post it because I am new here.) You need not worry about the handler_ methods because those are just methods that are run by the threads themselves.
Also--the original source was in C and I changed it to C++. Should I just use C?
server.h Code: /*
* server.h
[code]....
View 1 Replies
View Related
Mar 20, 2011
I have 2 scripts that I copy from the material I study, one about working with environment variables and the other one about parsing command line output.
The problem with the first one is that the variables doesn't show after the script is run
The script syntax is as follows ( in short )
#! /bin/bash
SYS_NAME=rhel01
OS_SYS="RHEL 05"
export SYS_NAME OS_SYS
echo " The hostname of this system is $SYS_NAME"
[Code].....
View 4 Replies
View Related
Dec 21, 2008
I have a simple script that I am writing to parse an XML file for me, and update some version numbers. Basically what happens in my script is that I'm running a grep command on the file to get the current version number, then I prompt for a new number, and then I want to globally replace that version number in the file. The problem is, the sed command seems to only want literal values (it doesn't appear to be capable of resolving variables). For example, this code doesn't work:
[Code]...
I have tried removing the curly brackets from the variable names, quoting them, etc. and nothing seems to work. Should I do this with awk instead (and if so can you kindly write out the command for me because I never bothered to learn awk).
View 2 Replies
View Related
Apr 27, 2010
I can define all variables in tcl programming in a file for instance var.cfgand source the same file in my tcl script such assource var.cfgIs this possible in perl too?
View 3 Replies
View Related
Feb 16, 2011
Back to the problem: I wrote a little bash script that people around here can run to search and replace strings in the current directory and all subdirectories. However, whenever there is a space in the new string (the one doing the replacing), I get this error:
Sed: -e expression #1, char 9: unterminated `s' command
My code looks like this:
Code:
find ./ -type f -not -name find_SNR.sh -exec sed -i 's/'$FIND_SNR_STR1/$FIND_SNR_STR2/'' {} ;
View 5 Replies
View Related
Dec 23, 2010
I have a script which uses a Menu file (containing several different Menus). I start out with
Code:
Menu=Main
and grep my VRMenuData file for
Code:
$Menu:code:$txtring
where txtring contains the value entered from the keyboard, and cut that line for the code I want executed. So my data looks like:
Quote:
Main:code:1:declare Menu=Download
Main:code:2:soffice -calc VRSched.ods
Main:code:3:echo Load Refresh Menu here
My code acting on the data looks like:
Code:
`grep $Menu:code:$txtring VRMenuData | cut -d: -f4`
When I chose options 1 thru 3, that executes with no problem (Menu=Download does not work). The program sees into field four, but field four is not able to see outside itself. For instance:
Code:
Download:chan:
Download:pitm:1:echo $numpi. Return to Main Menu
Download:pitm:2:
[code]....
is used to generate a numbered list of channels. It could be four or 40. Whatever the number is, I want the next line to read, for example, 32. Return to Main Menu.
Code:
num
is the variable in the script I use to number the list of channels. The number following Download: pitm: is numpi, which should be added to num. How do I take
Code:
Download:pitm:1:echo $numpi. Return to Main Menu
from my VRMenuData file and generate
Code:
32. Return to Main Menu
Code:
$ declare -p Menu
declare -- Menu="Download"
$ declare -p numpi
[code]....
View 3 Replies
View Related
Jul 28, 2009
I have script that I'm working on that updates a username in all the files that are called blah.inc for my framework. since i host a bunch of these web apps i need to do it to all of them. so I need to figure out how to update these files automagically with out me watching it to call vim every time. heres what I have so far
Code:
This finds the files but now i need to figure out how to do s/bob/fred/g on those files.
View 5 Replies
View Related
Mar 1, 2011
I have a file, "outfile" what I wish to insert into a file called template where it finds "OVERRIDES". I am getting an error.
Code:
However I can do something like this and it works fine
Code:
I am guessing its because of the file size or multiple lines.
A sample of the outfile text is below
Code:
View 9 Replies
View Related
Mar 10, 2011
I have something like...
Code:
var=beer
# echo ${var/%e/E} doesn't do anything because i can only replace "r" or "er" this way
[code]....
View 1 Replies
View Related
Feb 28, 2009
I've found some scripts that replaces a string in a file but it's not quite working for me.
And I'm trying to replace a tag in an xml file that looks like this
So I ran a command line like this perl -w -i -p -e "s/xmlns="'http://mydomain.org/replacethese.xsd'">/>/g" testfile.xml
And I get a error output
Search pattern not terminated at -e line 1.
Found the script from this blog [url]
View 7 Replies
View Related
Jan 8, 2010
There are a few things I was wondering about (using tools available in bash):How to insert a file at at the specified location of another.How to copy a portion of a file between two lines matching a regex to another file (and/or making sed only work between two lines matching a regex)How would you do this?
View 2 Replies
View Related
Aug 11, 2010
i need to change a binary file, let's say to find and replace username:
find string: "/home/name/bla-bla-bla/ "
new string: "/home/anewname/bla-bla-bla/ "
i can do it, for example, in emacs (hexl-mode), but interesting in writing a script instead. it will be much more better for me if i could do it automatically. is there an analog of: sed 's/string1/string2/g' ? P.S. the best way is to recompile the binary files i have, but there are no sources available.
View 5 Replies
View Related
Apr 5, 2010
I know how to replace a particular instance (say 3rd one) of a word in a line using sed based on the sed one-liners. However I would like to replace a particular instance of a word in the entire file.
For example, here is a file:
Code:
John
Betty
Jack
Ron
Jack
Paul
So now I would like to replace the second instance of Jack (in red color) with "Rob" (for example). Not quite sure how to do that? I tried couple of things from here but they did not work.
View 10 Replies
View Related
Jun 30, 2011
I have question about replacing a string in a file.
How can I replace the printerb's 10.1.1.1 to something else(10.1.1.2, for example) without replace printera's 10.1.1.1 accidentally?
I have tried perl -e -pi "s/10.1.1.1/10.1.1.2/g" /etc/hosts. but, perl replace both 10.1.1.1 to 10.1.1.2.
View 13 Replies
View Related
Jan 11, 2011
I often get files with many spaces as part of their names. I would like to automatically replace these spaces with underscores, but otherwise not change the file name. Is there a way to do this task with just the bash shell?
View 4 Replies
View Related
Jul 19, 2010
I am trying to replace the default path in a file(which is a script)with the new path which I have get when the bash script runsThe code is
SCRIPT=$(readlink -f $0)
SCRIPTPATH=`dirname $SCRIPT`
sed -i "s/$HomeDir/$SCRIPTPATH/g" <filename>
[code]....
View 4 Replies
View Related
Jun 11, 2009
I want to read from the file and check for the pattern, if the line has some word like <string>: then string should be copied into buffer. Afterwards, I want to insert the same <string> with some word in the next line of the file. use sed command to perform the above mentioned operations?
View 2 Replies
View Related
Mar 4, 2010
I am beginner in this business of shell script and I have no idea how to do the following: I would like to replace the lines of my file that contains 'CFL=' by 'CFL=0.5'. Note that I want to replace the full line meaning
View 11 Replies
View Related
Aug 5, 2010
What is the easiest way to replace a hash in a shadow file for one particular user, not using passwd, and when the current password is unknown?
View 3 Replies
View Related
Feb 25, 2011
Code:
#!/bin/bash
VARR=`cat /proc/asound/cards | grep HDMI | cut -c 1-2`
VARX="defaults.ctl.card $VARR"
VARY="defaults.pcm.card $VARR"
FILE1="alsa"
FILE2="alsa.new"
echo $VARX
echo $VARY
sed "s/defaults.ctl.card*/'$VARX'/g" $FILE1 > $FILE2
This is what I have right now. Well, I thought I knew sed, and apparently I don't... I tried writing this for someone else, and this has given me trouble, so since the user pretty much figured it out on his own, here it goes.
Say VARR=1, so VARX and VARY contain the above text, appended by 1.
What I am trying to do is replace the text "defaults.ctl.card 0" by VARX and "defaults.pcm.card 0" by VARY. The contents of FILE1 is the file being used to search for both text fields, and FILE2 is the output file. I tried using single quotes, double quotes, and a mixture of both, and no go whatsoever. So my question... What is the proper way of searching for text within a file and replacing with a variable?
View 5 Replies
View Related
Aug 3, 2010
I'm wanting to mod some PHP files across a hierarchy and thought I'd drive it with find + grep + xargs
I built up a command line which I was confident would do the job, but now can't save the results.
First I tried this:
Code:
find . -name *.php | xargs grep serialize | cut -d: -f1| sort -u | xargs sed -i s/serialize/serialise/g
but that didn't work:
Code:
sed: illegal option -- i
so I thought I'd try using
Code:
[Code].....
View 10 Replies
View Related
Mar 16, 2014
Is there any way to use sed to replace certain text in a file with the persons username automatically? Right now i'm using
Code: Select allsed -i.bak s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g file.foo
I would like it to automatically inject the persons usrname in the replacement string. Is this possible? I've been looking on line at various sed tutorials and I cant quite find what i'm looking for. I also didn't really see anything in the forums search function.Essentially i'm trying to take this file URL...Android.rules and replace all instances of username with the persons actual username automatically.
Code: Select allsed -i.bak s/username/$USER/g 51_Android.rules
View 0 Replies
View Related
Mar 28, 2011
I am trying to rename a lot of files but need to keep the extension :
the files are films names :
a.b.c.d.***.iso
the result should be replacing "." by spaces " "
this command :
for files in *.iso ; do mv "$files" `echo "$files" | tr '.' ' '`; done
put a space also before the extension iso ??
How can I rename files from
"a.b.c.d.iso" to "a b c d.iso"
View 5 Replies
View Related
Oct 16, 2010
As indicated in the subject, I want to search a text. If the text is present I want to replace it. But if the text is not present, I want to insert it after first line and before last line.
Searched text is:CleanCache "*";
Where * can be anything.
Example: CleanCache "false"; -> CleanCache "true";
If CleanCache "false"; is not present, only insert CleanCache "true"; after first line and before last line.
View 8 Replies
View Related
Mar 30, 2010
I want to use SED to do the following: In a text file replace any occurrences of the three character string ZZZ with a quotation mark "and. replace all occurrences of a comma with a semi-colon. It is the S/ / / command which is stumping me on the first issue...inparticular how to get the replace string to be quote.
View 9 Replies
View Related
Jul 16, 2010
Something very handy to do in a Linux shell, is manipulating files and strings - essentially parsing data. Write a utility which will scan in a text file and search and replace strings. We also want to keep track of how many strings we've replaced.
I know that my command would look like this: <utility name> <filename> <stringToSearchFor> <stringToReplaceWith>
Code: #!/bin/bash
[code]....
View 2 Replies
View Related
Feb 14, 2011
I wanted to find and replace a string from a perl file. I have written a script in bash which runs the following command.
perl -pi -e "s/$findstring/$replacestring/" testfile
where as $findstring = print F_WC_TMP"$line
";
and $replaceString = $line = join ' ', split ' ', $line; print F_WC_TMP"$line
";
But when I am running the above command, i think it is replacing the $findstring with the above mentioned string and hence it contains a $line, it is looking for the variable $line and not finding the exact string. I am confused about how to search for a string that contains $ in it and replace it with another $string.
View 5 Replies
View Related
Aug 12, 2010
there's one major issue left preventing Ubuntu from running flawlessly on my hine.Ubuntu doesn't recognize DVD-RWs once written on. The problem occurred with my old drive (LG GSA-H55N) as well with my new drive (Samsung SH-S222L).I'm using Sony DVD-RW (1x-2x speed)
Ubuntu only recognizes blank DVD-RWsonce written on - no matter whether written by Brasero or Windows 7 - Ubuntu isn't showing any drive in Nautilus nor in Brasero after putting in the DVDtherefore I can't even erase themboth of the drives as well as the DVD-RWs are working perfectly fine on Windows 7 (erasing, writing)I managed to get all other things working by now. My system is close to perfection and this is the only remaining major issue.
View 9 Replies
View Related