03-26-2006
Inserting text into a file either through standard UNIX commands such as sed(1) or awk(1) or through use of a customized program will require, at least, a temporary file. An example of the former would be:
FILE=filename
sed -e "s/this text/for that/" 1>/tmp/$FILE.tmp && cat /tmp/$FILE.tmp > $FILE && rm /tmp/$FILE.tmp
A C example is a bit more complex (and will not be attempted without additional specifications) but would roughly work as:
1 ) Open current file
2 ) Open temporary file from tmpnam(3C)
3 ) Read current file making changes as necessary and write to temporary
4 ) Rewind both files
5 ) Read temporary file writing to current file
6 ) Resize/truncate current file (Necessary if temporary file is smaller than original, not required otherwise; good practice to always do anyway)
7 ) Close both files
I hope this is helpful.
10 More Discussions You Might Find Interesting
1. Programming
I have a problem that I want to insert and delete some chars in the middle of a file. fopen() and fdopen() just allow to append at the end.
Is there any simple method or existing library that allow these actions? Thanks in advance.:confused: (7 Replies)
Discussion started by: ivancheung
7 Replies
2. Shell Programming and Scripting
Script 1
Pre-requisites
Create a file with x amount of lines in it, the content of your choice.
Write a script that takes two arguments. The first being a line of text, the second being your newly created file. The script should take the first argument and insert it into the very top (the... (3 Replies)
Discussion started by: ali hussain
3 Replies
3. Shell Programming and Scripting
I wrote a script like
#!/bin/bash
echo $1 > temp
cat $2 >> temp
mv temp $2
now I have problem appending the above script(only using bash shell) so that it now inserts the first argument into the middle of the file.
I have tried using $(('wc -l < file' / 2 ))
but invain so could any one... (4 Replies)
Discussion started by: boris
4 Replies
4. Shell Programming and Scripting
how to insert one file into another file not by concatenating as usual done.
file1
A B
C D
E F
G H
I J
K L
file2
23455
33444
33334
33345
Output shud be
23455
A B
C D (4 Replies)
Discussion started by: cdfd123
4 Replies
5. Shell Programming and Scripting
I want to insert a text into the middle of a file (3 Replies)
Discussion started by: relle
3 Replies
6. UNIX for Dummies Questions & Answers
Hey guys, how do we take a line of text as an argument from a user and then insert it in the middle of a file irrespective of the number of lines in the file. I am trying to do this without SED or AWK. Inserting it in the beginning and at the end is easy, but i am trying to accomplish inserting... (6 Replies)
Discussion started by: kartikkumar84@g
6 Replies
7. Shell Programming and Scripting
I have tried
sed '/6/a text_to_inserted' file > newfile
but this inserts test_to_insert at random places in file and i want it in specific location, which is line 6.
can anyone help.... (6 Replies)
Discussion started by: phenom
6 Replies
8. Shell Programming and Scripting
Hi,
Below is my issue which I desperately need and I want a shell script which can do this job.
1. There are 10 log files in a particular location.
2. open each log file. Goto to the end of the file. From the end go up to find a particular text. From this particular text till the end of... (3 Replies)
Discussion started by: kashriram
3 Replies
9. Shell Programming and Scripting
Hi I am trying to write a bash script to add a line of text to the middle of a file.
The way I worked it out was to calculate the number of lines and divide by 2. The file I am using is called newfile and it just contains lines of data.
The new file I have created I have called midfile and... (7 Replies)
Discussion started by: BundBash
7 Replies
10. Shell Programming and Scripting
Hi,
So far i've made a script that takes two argument, 1st is the contents and the 2nd is the named file. At the moment i've managed to insert new contents as a new line at the top, but i want to ask how can you insert contents in the middle of the file?
Source Code
#!/bin/bash
#Write... (3 Replies)
Discussion started by: zen10
3 Replies
LEARN ABOUT CENTOS
dblink_exec
DBLINK_EXEC(3) PostgreSQL 9.2.7 Documentation DBLINK_EXEC(3)
NAME
dblink_exec - executes a command in a remote database
SYNOPSIS
dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
dblink_exec(text sql [, bool fail_on_error]) returns text
DESCRIPTION
dblink_exec executes a command (that is, any SQL statement that doesn't return rows) in a remote database.
When two text arguments are given, the first one is first looked up as a persistent connection's name; if found, the command is executed on
that connection. If not found, the first argument is treated as a connection info string as for dblink_connect, and the indicated
connection is made just for the duration of this command.
ARGUMENTS
conname
Name of the connection to use; omit this parameter to use the unnamed connection.
connstr
A connection info string, as previously described for dblink_connect.
sql
The SQL command that you wish to execute in the remote database, for example insert into foo values(0,'a','{"a0","b0","c0"}').
fail_on_error
If true (the default when omitted) then an error thrown on the remote side of the connection causes an error to also be thrown locally.
If false, the remote error is locally reported as a NOTICE, and the function's return value is set to ERROR.
RETURN VALUE
Returns status, either the command's status string or ERROR.
EXAMPLES
SELECT dblink_connect('dbname=dblink_test_standby');
dblink_connect
----------------
OK
(1 row)
SELECT dblink_exec('insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
dblink_exec
-----------------
INSERT 943366 1
(1 row)
SELECT dblink_connect('myconn', 'dbname=regression');
dblink_connect
----------------
OK
(1 row)
SELECT dblink_exec('myconn', 'insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
dblink_exec
------------------
INSERT 6432584 1
(1 row)
SELECT dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
NOTICE: sql error
DETAIL: ERROR: null value in column "relnamespace" violates not-null constraint
dblink_exec
-------------
ERROR
(1 row)
PostgreSQL 9.2.7 2014-02-17 DBLINK_EXEC(3)