So, I want to, in a script, do an in-line replacement of a line in a file. Piece of cake in Linux with GNU sed. With OSX and BSD sed, not so much. ....
The in-place modification of files usually involves writing a scratch-temporary file and copying the scratch file back over the original (or renaming the file). As noted, not all versions of sed, etc., have this capability builtin.
One general solution is the addition of command sponge, a component of package moreutils. So for system OS, ker|rel, machine: FreeBSD, 8.0-RELEASE, i386:
(The utility mag is a local generic repository scanner, so that we need not recall the details of apt-cache, yum, rpm, zypper, ports, etc.)
I need to replace the line containing "STAGE_DB" with the line
"STAGE_DB $DB # database that contains the table being loaded ($workingDB)"
Here $DB is passed during the runtime.
How can I do this?
Thanks,
Kousikan (2 Replies)
Hi,
I have a problem. I want to use SED to replace one line with three
It looks like:
PARAM='first_line,second_line,third_line'
And in file:
blablabla
blablabla
PARAM
blablabla
blablabla
blablabla
All I want is to change this into:
blablabla
blablabla
first_line
second_line... (6 Replies)
Hi,
Please help me with the sed command for the following scenario:
I've in abc.txt,
asdasdada<cr>aasdsad<cr><cr>asdasdfsdfs<cr><cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr><cr>
I want a sed command to do
asdasdada<cr>aasdsad<cr>asdasdfsdfs<cr>asdsada<cr>adasd<cr>daasdaasd<cr>
... (13 Replies)
i have few lines in a file... i am reading them in a while loop so a particular line is held is $line1.. consider a modified line is held in $line2.... i want to replace $line1 with $line2 in the same file... how to do it..?
i have come up till the below code
sed "s/$line1/$line2/g" tmpfile.sql... (5 Replies)
Hello,
I need to use sed to find a certain string and then do a replace on the line above. For example if I had the following text:
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDD
I would like to find CCCCCCC, but I would like the replace to be carried out on BBBBBBB. I have done some... (11 Replies)
Hi How Are you?
I am doing fine!
I need to go now?
I will see you tomorrow!
Basically I need to replace the entire line containing "doing" with a blank line:
I need to the following output:
Hi How Are you?
I need to go now?
I will see you tomorrow!
Thanks in advance.... (1 Reply)
my requirement is,
consider a file output
cat output
blah sdjfhjkd jsdfhjksdh
sdfs 23423 sdfsdf sdf"sdfsdf"sdfsdf"""""dsf
hellow there
this doesnt look good
et cetc etc
etcetera
i want to replace a line of line number 4 ("this doesnt look good") with some other line
... (3 Replies)
All, I appreciate any help you can offer here as this is well beyond my grasp of awk/sed...
I have an input file similar to:
&LOG
&LOG Part: "@DB/TC10000021855/--F"
&LOG
&LOG
&LOG Part: "@DB/TC10000021852/--F"
&LOG Cloning_Action: RETAIN
&LOG Part: "@DB/TCCP000010713/--A"
&LOG
&LOG... (5 Replies)
Sed command to replace a line in a file using line number from the output of a pipe.
Is it possible to replace a whole line piped from someother command into a file at paritcular line...
here is some basic execution flow..
the line number is 412
lineNo=412
Now i have a line... (1 Reply)
Hi all,
Let's say I have a script calling for the two variables PA_VALUE and PB_VALUE.
for pa in PA_VALUE
blah blah
do
for pb in PB_VALUE
blah blah
do
I have a text file with two columns of values for PA and PB.
14.5 16.7
7.8 9.5
5.6 3.6
etc etc
I would like to read this... (7 Replies)
Discussion started by: crimsonengineer
7 Replies
LEARN ABOUT FREEBSD
edinplace
edinplace(1) Mail Avenger 0.8.3 edinplace(1)NAME
edinplace - edit a file in place
SYNOPSIS
edinplace [--error=code] [[--file=file] command [arg ...]]
DESCRIPTION
edinplace runs command with its input from file (or standard input by default), and then replaces the contents of file with the output of
command. To the extent possible, edinplace attempts to exit with the same status as command.
If edinplace is run on standard input (no --file option), it must inherit a file descriptor 0 that is open for both reading and writing.
When processing standard input, if edinplace does not encounter a fatal error, it rewinds its standard input to offset 0 before exiting.
Thus, a script can first run edinplace command, then run another filter command such as grep, and the resulting output will be the output
of grep on command's output.
If no command is specified, edinplace just rewinds its standard input to file offset 0. In this case, it is an error to supply the --file
option. Of course, rewinding only works when standard input is a real file (as opposed to a pipe or device).
There are two options:
--error=code (-x code)
Ordinarily, edinplace attempts to exit with the same status as command. However, if edinplace encounters some fatal error (such as
being unable to execute command), it will exit with status code. The default value is 1. The range of valid exit codes is 1-255,
inclusive.
--file=file (-f file)
Specifies that file should be edited. Otherwise, edinplace will edit its standard input (which must be opened for both reading and
writing).
--skipfrom
Skip the first line of the file if it starts "From ". If edinplace is run without a command, positions the file offset at the start of
the second line of the file. If edinplace is run with a command, then the first line of the file is neither fed to the command, nor
overwritten. This option is useful for running edinplace over mail files, which sometimes start with a "From " line specifying the
envelope sender of the message. Since "From " is not part of the message header, just a Unix convention, some programs are confused by
the presence of that line. Note that if you specify a command, then edinplace resets the file offset to 0 upon exiting, even if the
--skipfrom option was present.
EXAMPLES
The following command prepends the string "ORIGINAL: " to the beginning of each line in text file message:
edinplace -f message sed -e 's/^/ORIGINAL: /'
The following command runs the spamassassin mail filter program on a mail message stored in file message, replacing the contents of message
with spamassassin's annotated output, and exiting with code 100 if spamassassin thinks the message is spam. If edinplace encounters any
fatal errors, it will exit with code 111.
edinplace -x 111 -f message spamassassin -e 100
(spamassassin reads a mail message on standard input and outputs an annotated copy of the message including information about whether or
not the message is likely to be spam and why. The -e option to spamassassin specifies what exit status spamassassin should use if the
message appears to be spam; edinplace will use the same exit code as the program it has run.)
To run spamassassin on incoming mail before accepting the mail from the remote client, place the following line in an appropriate Mail
Avenger rcpt file as the last command executed:
bodytest edinplace -x 111 spamassassin -e 100
SEE ALSO avenger(1)
The Mail Avenger home page: <http://www.mailavenger.org/>.
BUGS
edinplace does not make a copy of the file being edited, but rather overwrites the file as it is being processed. At any point where
command has produced more output than it has consumed input from the file, edinplace buffers the difference in memory. Thus, a command
that outputs large amounts of data before reading the input file can run edinplace out of memory. (A program that outputs data as it reads
even a very large file should be fine, however.)
If command crashes or malfunctions for any reason, you will likely lose the input file, since edinplace will view this as a program that
simply outputs the empty file.
AUTHOR
David Mazieres
Mail Avenger 0.8.3 2012-04-05 edinplace(1)