Обсуждение: Copy entire file as one field
How can I copy several hundred small text files into a database, each file going into a field called 'message' and becomming one record (with or without other fields) using psql? PostgreSQL 7.2.2 RedHat 8.0 Thanks, Warren _________________________________________________________________ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail
Hello, newbie here (ha, imagine that). Anyways, I worked this summer rewriting my website to use PHP and PostreSQL. I was doing that away from my home. I didn't backup the DB and recently I've been wanting to start again using my Linux (RH 8) box here at home. So, I've been playing around with the pg_dump command trying to get it to work right. I make heavy use of the OIDs in my DB so I know I have to use the -o switch. However, when I take the dump from work and move it to my home and try to recreate my database (I did pg_dump -C -o > outputfile.txt) I get the following error: You are now connected to database gorobotics2. CREATE ": can't parse "ne 1, pg_atoi: error in "0 lost synchronization with server, resetting connection There isn't anything in my dump that says "ne 1, pg_atoi ..." Also I try recreating the DB on the computer I got the dump from and it works fine. Does anyone know why I can't do this? -William
On Wed, 2002-11-27 at 18:40, Warren Massengill wrote: > How can I copy several hundred small text files into a database, each file > going into a field called 'message' and becomming one record (with or > without other fields) using psql? Don't know about psql, but you could use python or perl (heck, even C!) to script it pretty easily. -- +------------------------------------------------------------+ | Ron Johnson, Jr. mailto:ron.l.johnson@cox.net | | Jefferson, LA USA http://members.cox.net/ron.l.johnson | | | | "they love our milk and honey, but preach about another | | way of living" | | Merle Haggard, "The Fighting Side Of Me" | +------------------------------------------------------------+
On Wed, 2002-11-27 at 19:46, Gallamine wrote: > Hello, newbie here (ha, imagine that). Anyways, I worked this summer > rewriting my website to use PHP and PostreSQL. I was doing that away from my > home. I didn't backup the DB and recently I've been wanting to start again > using my Linux (RH 8) box here at home. So, I've been playing around with > the pg_dump command trying to get it to work right. I make heavy use of the > OIDs in my DB so I know I have to use the -o switch. However, when I take > the dump from work and move it to my home and try to recreate my database (I > did pg_dump -C -o > outputfile.txt) I get the following error: > > You are now connected to database gorobotics2. > CREATE > ": can't parse "ne 1, pg_atoi: error in "0 > lost synchronization with server, resetting connection > > There isn't anything in my dump that says "ne 1, pg_atoi ..." Also I try > recreating the DB on the computer I got the dump from and it works fine. > > Does anyone know why I can't do this? Can we presume that it's the same PG version on both boxen, and that the same options were used when generating the PG binaries and at installation on each box? -- +------------------------------------------------------------+ | Ron Johnson, Jr. mailto:ron.l.johnson@cox.net | | Jefferson, LA USA http://members.cox.net/ron.l.johnson | | | | "they love our milk and honey, but preach about another | | way of living" | | Merle Haggard, "The Fighting Side Of Me" | +------------------------------------------------------------+
I'm not really a Perl programmer. I can see how to write a loop and open a specific file but don't know how to tell Perl to copy the file into a db or how to work through a directory of files of various names. But I'll work on it. Thanks, Warren >From: Ron Johnson <ron.l.johnson@cox.net> >To: PgSQL Novice ML <pgsql-novice@postgresql.org> >Subject: Re: [NOVICE] Copy entire file as one field >Date: 27 Nov 2002 20:26:45 -0600 > >On Wed, 2002-11-27 at 18:40, Warren Massengill wrote: > > How can I copy several hundred small text files into a database, each >file > > going into a field called 'message' and becomming one record (with or > > without other fields) using psql? > >Don't know about psql, but you could use python or perl (heck, even C!) >to script it pretty easily. > >-- >+------------------------------------------------------------+ >| Ron Johnson, Jr. mailto:ron.l.johnson@cox.net | >| Jefferson, LA USA http://members.cox.net/ron.l.johnson | >| | >| "they love our milk and honey, but preach about another | >| way of living" | >| Merle Haggard, "The Fighting Side Of Me" | >+------------------------------------------------------------+ > > >---------------------------(end of broadcast)--------------------------- >TIP 4: Don't 'kill -9' the postmaster _________________________________________________________________ MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus
"Gallamine" <iam@gallamine.com> writes:
> You are now connected to database gorobotics2.
> CREATE
> ": can't parse "ne 1, pg_atoi: error in "0
> lost synchronization with server, resetting connection
> There isn't anything in my dump that says "ne 1, pg_atoi ..."
This looks a lot like a newline problem. COPY only likes Unix-style
newlines (\n, a/k/a LF). You've got DOS-style newlines (\r\n, a/k/a
CR/LF) or possibly Mac-style newlines (\r, a/k/a CR) in your data file.
This can be blamed on whatever method you used to transfer the dump
file from old machine to new. Try again, and try transferring the dump
as binary data not text.
regards, tom lane
On Thu, 2002-11-28 at 00:40, Warren Massengill wrote:
> How can I copy several hundred small text files into a database, each file
> going into a field called 'message' and becomming one record (with or
> without other fields) using psql?
A bit of shell scripting:
for f in `ls small_file*`
do
psql -d mydatabase -c "INSERT INTO mytable (message)
VALUES ('`cat $f`')"
done
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight, UK http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"The earth is the LORD'S, and the fullness thereof; the
world, and they that dwell therein." Psalms 24:1
Вложения
My database is pg, the table is mail.
The small text files are in /home/kelly/message/.
The bash shell script is merge.
Somehow I failed to translate your instructions...
-----------------------------------------------------
#!/bin/bash
for f in `ls /home/kelly/message*`
do
psql -d pg -c "INSERT INTO mail (message)
VALUES ('`cat $f`')"
done
----------------------------------------------------
[kelly@localhost message]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2 file3
merge aborted
----------------------------------------------------
Thanks,
Warren
>From: Oliver Elphick <olly@lfix.co.uk>
>To: Warren Massengill <warrenmassengill@hotmail.com>
>CC: pgsql-novice@postgresql.org
>Subject: Re: [NOVICE] Copy entire file as one field
>Date: 28 Nov 2002 07:43:12 +0000
>
>On Thu, 2002-11-28 at 00:40, Warren Massengill wrote:
> > How can I copy several hundred small text files into a database, each
>file
> > going into a field called 'message' and becomming one record (with or
> > without other fields) using psql?
>
>A bit of shell scripting:
>
>for f in `ls small_file*`
>do
> psql -d mydatabase -c "INSERT INTO mytable (message)
> VALUES ('`cat $f`')"
>done
>
>
>--
>Oliver Elphick Oliver.Elphick@lfix.co.uk
>Isle of Wight, UK http://www.lfix.co.uk/oliver
>GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
> ========================================
> "The earth is the LORD'S, and the fullness thereof; the
> world, and they that dwell therein." Psalms 24:1
><< signature.asc >>
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail
RedHat 8 has Python tutorials and docs. All written in Python. Apparently you have to buy a book to read the RedHat docs. :-( Actually, it's not quite that bad. I haven't given up on Python but just haven't had time to work it out yet. j\Thanks, Warren >From: Ron Johnson <ron.l.johnson@cox.net> >To: Warren Massengill <warrenmassengill@hotmail.com> >Subject: Re: [NOVICE] Copy entire file as one field >Date: 28 Nov 2002 06:01:07 -0600 > >On Wed, 2002-11-27 at 20:56, Warren Massengill wrote: > > I'm not really a Perl programmer. I can see how to write a loop and open >a > > specific file but don't know how to tell Perl to copy the file into a db >or > > how to work through a directory of files of various names. But I'll work >on > > it. > > > > Thanks, > > Warren > > > >I don't know perl either! Attached, though, something like what I'd >try in python, if all of the small text files are all, and by >themselves, in a single directory, and you are in that directory. >The only gotcha might be that the INSERT statement might not like >all those \n characters... > > > > > >From: Ron Johnson <ron.l.johnson@cox.net> > > >To: PgSQL Novice ML <pgsql-novice@postgresql.org> > > >Subject: Re: [NOVICE] Copy entire file as one field > > >Date: 27 Nov 2002 20:26:45 -0600 > > > > > >On Wed, 2002-11-27 at 18:40, Warren Massengill wrote: > > > > How can I copy several hundred small text files into a database, >each > > >file > > > > going into a field called 'message' and becomming one record (with >or > > > > without other fields) using psql? > > > > > >Don't know about psql, but you could use python or perl (heck, even C!) > > >to script it pretty easily. > >-- >+------------------------------------------------------------+ >| Ron Johnson, Jr. mailto:ron.l.johnson@cox.net | >| Jefferson, LA USA http://members.cox.net/ron.l.johnson | >| | >| "they love our milk and honey, but preach about another | >| way of living" | >| Merle Haggard, "The Fighting Side Of Me" | >+------------------------------------------------------------+ ><< pgload.warren.py >> _________________________________________________________________ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail
On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> My database is pg, the table is mail.
> The small text files are in /home/kelly/message/.
> The bash shell script is merge.
>
> Somehow I failed to translate your instructions...
>
> -----------------------------------------------------
> #!/bin/bash
>
> for f in `ls /home/kelly/message*`
^^^^^^
message/*
> do
> psql -d pg -c "INSERT INTO mail (message)
> VALUES ('`cat $f`')"
> done
Your files are in that directory, so the wild card must be too.
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight, UK http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"What shall we then say to these things? If God be for
us, who can be against us?" Romans 8:31
Warren,
merge is an actual linux utility used to merge files. When you ran the
command it found the system command before it could get to your script. To
run your program, cd to the your program is stored. Then type in
./merge
This will execute the program in your current directory. This should do
the trick,
Devinder
"Warren Massengill"
<warrenmassengill@hotm To: olly@lfix.co.uk
ail.com> cc: pgsql-novice@postgresql.org
Sent by: Subject: Re: [NOVICE] Copy entire file as one field
pgsql-novice-owner@pos
tgresql.org
12/03/2002 01:48 PM
My database is pg, the table is mail.
The small text files are in /home/kelly/message/.
The bash shell script is merge.
Somehow I failed to translate your instructions...
-----------------------------------------------------
#!/bin/bash
for f in `ls /home/kelly/message*`
do
psql -d pg -c "INSERT INTO mail (message)
VALUES ('`cat $f`')"
done
----------------------------------------------------
[kelly@localhost message]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
file3
merge aborted
----------------------------------------------------
Thanks,
Warren
>From: Oliver Elphick <olly@lfix.co.uk>
>To: Warren Massengill <warrenmassengill@hotmail.com>
>CC: pgsql-novice@postgresql.org
>Subject: Re: [NOVICE] Copy entire file as one field
>Date: 28 Nov 2002 07:43:12 +0000
>
>On Thu, 2002-11-28 at 00:40, Warren Massengill wrote:
> > How can I copy several hundred small text files into a database, each
>file
> > going into a field called 'message' and becomming one record (with or
> > without other fields) using psql?
>
>A bit of shell scripting:
>
>for f in `ls small_file*`
>do
> psql -d mydatabase -c "INSERT INTO mytable (message)
> VALUES ('`cat $f`')"
>done
>
>
>--
>Oliver Elphick Oliver.Elphick@lfix.co.uk
>Isle of Wight, UK http://www.lfix.co.uk/oliver
>GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
> ========================================
> "The earth is the LORD'S, and the fullness thereof; the
> world, and they that dwell therein." Psalms 24:1
><< signature.asc >>
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html
The revised version has the same result. If I change the name of the script
(another poster suggested avoiding the reserved word 'merge') there is a
different error message.
Thanks,
Warren
------------------------------------
#!/bin/bash
for f in `ls /home/kelly/message/*`
do
psql -d pg -c "INSERT INTO mail (message)
VALUES ('`cat $f`')"
done
-------------------------------------
[kelly@localhost pg]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2 file3
merge aborted
--------------------------------------
[kelly@localhost pg]$ merge4
bash: merge4: command not found
--------------------------------------
>
>On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > My database is pg, the table is mail.
> > The small text files are in /home/kelly/message/.
> > The bash shell script is merge.
> >
> > Somehow I failed to translate your instructions...
> >
> > -----------------------------------------------------
> > #!/bin/bash
> >
> > for f in `ls /home/kelly/message*`
> ^^^^^^
> message/*
>
> > do
> > psql -d pg -c "INSERT INTO mail (message)
> > VALUES ('`cat $f`')"
> > done
>
>Your files are in that directory, so the wild card must be too.
>--
>Oliver Elphick Oliver.Elphick@lfix.co.uk
_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*
http://join.msn.com/?page=features/junkmail
What error msg do you get after you change the name of the script?
Devinder
"Warren Massengill"
<warrenmassengill@hotm To: olly@lfix.co.uk
ail.com> cc: pgsql-novice@postgresql.org
Sent by: Subject: Re: [NOVICE] Copy entire file as one field
pgsql-novice-owner@pos
tgresql.org
12/04/2002 12:16 PM
The revised version has the same result. If I change the name of the script
(another poster suggested avoiding the reserved word 'merge') there is a
different error message.
Thanks,
Warren
------------------------------------
#!/bin/bash
for f in `ls /home/kelly/message/*`
do
psql -d pg -c "INSERT INTO mail (message)
VALUES ('`cat $f`')"
done
-------------------------------------
[kelly@localhost pg]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
file3
merge aborted
--------------------------------------
[kelly@localhost pg]$ merge4
bash: merge4: command not found
--------------------------------------
>
>On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > My database is pg, the table is mail.
> > The small text files are in /home/kelly/message/.
> > The bash shell script is merge.
> >
> > Somehow I failed to translate your instructions...
> >
> > -----------------------------------------------------
> > #!/bin/bash
> >
> > for f in `ls /home/kelly/message*`
> ^^^^^^
> message/*
>
> > do
> > psql -d pg -c "INSERT INTO mail (message)
> > VALUES ('`cat $f`')"
> > done
>
>Your files are in that directory, so the wild card must be too.
>--
>Oliver Elphick Oliver.Elphick@lfix.co.uk
_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*
http://join.msn.com/?page=features/junkmail
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://archives.postgresql.org
On Wed, 2002-12-04 at 12:16, Warren Massengill wrote:
> The revised version has the same result. If I change the name of the script
> (another poster suggested avoiding the reserved word 'merge') there is a
> different error message.
You *must* run your script this way:
$ ./merge4
And you did make sure that the script is executable, right?
> ------------------------------------
> #!/bin/bash
>
> for f in `ls /home/kelly/message/*`
> do
> psql -d pg -c "INSERT INTO mail (message)
> VALUES ('`cat $f`')"
> done
>
> -------------------------------------
> [kelly@localhost pg]$ merge
> merge: not enough arguments
> merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2 file3
> merge aborted
> --------------------------------------
> [kelly@localhost pg]$ merge4
> bash: merge4: command not found
> --------------------------------------
> >
> >On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > > My database is pg, the table is mail.
> > > The small text files are in /home/kelly/message/.
> > > The bash shell script is merge.
> > >
> > > Somehow I failed to translate your instructions...
> > >
> > > -----------------------------------------------------
> > > #!/bin/bash
> > >
> > > for f in `ls /home/kelly/message*`
> > ^^^^^^
> > message/*
> >
> > > do
> > > psql -d pg -c "INSERT INTO mail (message)
> > > VALUES ('`cat $f`')"
> > > done
> >
> >Your files are in that directory, so the wild card must be too.
> >--
--
+------------------------------------------------------------+
| Ron Johnson, Jr. mailto:ron.l.johnson@cox.net |
| Jefferson, LA USA http://members.cox.net/ron.l.johnson |
| |
| "they love our milk and honey, but preach about another |
| way of living" |
| Merle Haggard, "The Fighting Side Of Me" |
+------------------------------------------------------------+
I think this should have gone to the entire list.
Devinder
"David C. Oshel"
<dcoshel@inav.net To: "Devinder K Rajput" <Devinder.Rajput@ipaper.com>
> cc:
Subject: Re: [NOVICE] Copy entire file as one field
12/04/2002 12:53
PM
does echo '`cat $f`' work?
On Wednesday, December 4, 2002, at 12:30 PM, Devinder K Rajput wrote:
> ('`cat $f`')"
--
David C. Oshel mailto:dcoshel@inav.net
Cedar Rapids, Iowa http://soli.inav.net/~dcoshel
``I think most pleasantly in metaphors, and smoking brings metaphors to
mind." - Augustus Srb, in Alexei Panshin's _Star Well_
>From: "Devinder K Rajput" <Devinder.Rajput@ipaper.com>
>
>What error msg do you get after you change the name of the script?
>
>Devinder
Sorry, I should have said that the revised script (merge4) error message was
shown below...
--------------------------------------
[kelly@localhost pg]$ merge4
bash: merge4: command not found
--------------------------------------
Thanks,
Warren
>
>The revised version has the same result. If I change the name of the script
>(another poster suggested avoiding the reserved word 'merge') there is a
>different error message.
>
>Thanks,
>Warren
>
>------------------------------------
>#!/bin/bash
>
>for f in `ls /home/kelly/message/*`
>do
> psql -d pg -c "INSERT INTO mail (message)
> VALUES ('`cat $f`')"
>done
>
>-------------------------------------
>[kelly@localhost pg]$ merge
>merge: not enough arguments
>merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
>file3
>merge aborted
>--------------------------------------
>[kelly@localhost pg]$ merge4
>bash: merge4: command not found
>--------------------------------------
> >
> >On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > > My database is pg, the table is mail.
> > > The small text files are in /home/kelly/message/.
> > > The bash shell script is merge.
> > > -----------------------------------------------------
> > > #!/bin/bash
> > >
> > > for f in `ls /home/kelly/message*`
> > ^^^^^^
> > message/*
> >
> > > do
> > > psql -d pg -c "INSERT INTO mail (message)
> > > VALUES ('`cat $f`')"
> > > done
> >
> >Your files are in that directory, so the wild card must be too.
> >--
> >Oliver Elphick Oliver.Elphick@lfix.co.uk
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail
I just tested this right off the command line and it works fine:
drajput$ for f in `ls ~drajput/tmp/mail/*`; do psql -d counterpointtest -c
"INSERT INTO mail(message) VALUES('`cat $f`')";done
^^^^^^^^^^^^^
db name
regards
Devinder Rajput
Stores Division Corporate Offices
Chicago, IL
(773) 442-6474
"Ron Johnson"
<ron.l.johnson@cox.net To: "PgSQL Novice ML" <pgsql-novice@postgresql.org>
> cc:
Sent by: Subject: Re: [NOVICE] Copy entire file as one field
pgsql-novice-owner@pos
tgresql.org
12/04/2002 12:40 PM
On Wed, 2002-12-04 at 12:16, Warren Massengill wrote:
> The revised version has the same result. If I change the name of the
script
> (another poster suggested avoiding the reserved word 'merge') there is a
> different error message.
You *must* run your script this way:
$ ./merge4
And you did make sure that the script is executable, right?
> ------------------------------------
> #!/bin/bash
>
> for f in `ls /home/kelly/message/*`
> do
> psql -d pg -c "INSERT INTO mail (message)
> VALUES ('`cat $f`')"
> done
>
> -------------------------------------
> [kelly@localhost pg]$ merge
> merge: not enough arguments
> merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
file3
> merge aborted
> --------------------------------------
> [kelly@localhost pg]$ merge4
> bash: merge4: command not found
> --------------------------------------
> >
> >On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > > My database is pg, the table is mail.
> > > The small text files are in /home/kelly/message/.
> > > The bash shell script is merge.
> > >
> > > Somehow I failed to translate your instructions...
> > >
> > > -----------------------------------------------------
> > > #!/bin/bash
> > >
> > > for f in `ls /home/kelly/message*`
> > ^^^^^^
> > message/*
> >
> > > do
> > > psql -d pg -c "INSERT INTO mail (message)
> > > VALUES ('`cat $f`')"
> > > done
> >
> >Your files are in that directory, so the wild card must be too.
> >--
--
+------------------------------------------------------------+
| Ron Johnson, Jr. mailto:ron.l.johnson@cox.net |
| Jefferson, LA USA http://members.cox.net/ron.l.johnson |
| |
| "they love our milk and honey, but preach about another |
| way of living" |
| Merle Haggard, "The Fighting Side Of Me" |
+------------------------------------------------------------+
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
I'm still missing something.....
Two identical files: merge and merge4; both executable by the world.
------------------------------------
$ ./merge or $ ./merge4
cannot find the file
------------------------------------
$ merge
apparently locates the file -- but cannot run it
------------------------------------
-rw------- 1 kelly kelly 3062 Dec 3 11:57 logfile
-rwxrwxrwx 1 kelly kelly 135 Dec 3 13:24 merge
-rwxrwxrwx 1 kelly kelly 135 Dec 3 10:54 merge4
drwx------ 2 kelly kelly 4096 Dec 2 04:31 pg_clog
-rw------- 1 kelly kelly 10168 Dec 2 04:31 pg_hba.conf
-rw------- 1 kelly kelly 1250 Dec 2 04:31 pg_ident.conf
-rw------- 1 kelly kelly 4 Dec 2 04:31 PG_VERSION
drwx------ 2 kelly kelly 4096 Dec 2 04:31 pg_xlog
-rw------- 1 kelly kelly 3848 Dec 2 04:31 postgresql.conf
-rw------- 1 kelly kelly 20 Dec 3 10:51 postmaster.opts
--------------------------------------
[kelly@localhost pg]$ ./merge
: bad interpreter: No such file or directory
[kelly@localhost pg]$ ./merge4
: bad interpreter: No such file or directory
--------------------------------------
[kelly@localhost pg]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2 file3
merge aborted
[kelly@localhost pg]$
--------------------------------------
Thanks,
Warren
>
>You *must* run your script this way:
>$ ./merge4
>
>And you did make sure that the script is executable, right?
>
> > ------------------------------------
> > #!/bin/bash
> >
> > for f in `ls /home/kelly/message/*`
> > do
> > psql -d pg -c "INSERT INTO mail (message)
> > VALUES ('`cat $f`')"
> > done
> >
> > -------------------------------------
> > [kelly@localhost pg]$ merge
> > merge: not enough arguments
> > merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
>file3
> > merge aborted
> > --------------------------------------
> > [kelly@localhost pg]$ merge4
> > bash: merge4: command not found
> > --------------------------------------
> > >
> > >On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > > > My database is pg, the table is mail.
> > > > The small text files are in /home/kelly/message/.
> > > > The bash shell script is merge.
_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
from the error messages it seems that it can not the bash shell. One thing
to try is
$ which bash
and see if returns with the location or just try running the following one
liner from the command line:
for f in `ls /home/kelly/message/*`;do psql -d pg -c "INSERT INTO mail
(message) VALUES ('`cat $f`')"; done
Devinder Rajput
Stores Division Corporate Offices
Chicago, IL
(773) 442-6474
"Warren Massengill"
<warrenmassengill@hotm To: ron.l.johnson@cox.net
ail.com> cc: pgsql-novice@postgresql.org
Sent by: Subject: Re: [NOVICE] Copy entire file as one field
pgsql-novice-owner@pos
tgresql.org
12/04/2002 02:10 PM
I'm still missing something.....
Two identical files: merge and merge4; both executable by the world.
------------------------------------
$ ./merge or $ ./merge4
cannot find the file
------------------------------------
$ merge
apparently locates the file -- but cannot run it
------------------------------------
-rw------- 1 kelly kelly 3062 Dec 3 11:57 logfile
-rwxrwxrwx 1 kelly kelly 135 Dec 3 13:24 merge
-rwxrwxrwx 1 kelly kelly 135 Dec 3 10:54 merge4
drwx------ 2 kelly kelly 4096 Dec 2 04:31 pg_clog
-rw------- 1 kelly kelly 10168 Dec 2 04:31 pg_hba.conf
-rw------- 1 kelly kelly 1250 Dec 2 04:31 pg_ident.conf
-rw------- 1 kelly kelly 4 Dec 2 04:31 PG_VERSION
drwx------ 2 kelly kelly 4096 Dec 2 04:31 pg_xlog
-rw------- 1 kelly kelly 3848 Dec 2 04:31 postgresql.conf
-rw------- 1 kelly kelly 20 Dec 3 10:51 postmaster.opts
--------------------------------------
[kelly@localhost pg]$ ./merge
: bad interpreter: No such file or directory
[kelly@localhost pg]$ ./merge4
: bad interpreter: No such file or directory
--------------------------------------
[kelly@localhost pg]$ merge
merge: not enough arguments
merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
file3
merge aborted
[kelly@localhost pg]$
--------------------------------------
Thanks,
Warren
>
>You *must* run your script this way:
>$ ./merge4
>
>And you did make sure that the script is executable, right?
>
> > ------------------------------------
> > #!/bin/bash
> >
> > for f in `ls /home/kelly/message/*`
> > do
> > psql -d pg -c "INSERT INTO mail (message)
> > VALUES ('`cat $f`')"
> > done
> >
> > -------------------------------------
> > [kelly@localhost pg]$ merge
> > merge: not enough arguments
> > merge: usage: merge [-AeEpqxX3] [-L lab [-L lab [-L lab]]] file1 file2
>file3
> > merge aborted
> > --------------------------------------
> > [kelly@localhost pg]$ merge4
> > bash: merge4: command not found
> > --------------------------------------
> > >
> > >On Tue, 2002-12-03 at 19:48, Warren Massengill wrote:
> > > > My database is pg, the table is mail.
> > > > The small text files are in /home/kelly/message/.
> > > > The bash shell script is merge.
_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
>From: "Devinder K Rajput" <Devinder.Rajput@ipaper.com>
>Date: Wed, 4 Dec 2002 14:30:18 -0600
>
>
>from the error messages it seems that it can not the bash shell. One thing
>to try is
>$ which bash
>
>and see if returns with the location or just try running the following one
>liner from the command line:
>
>for f in `ls /home/kelly/message/*`;do psql -d pg -c "INSERT INTO mail
>(message) VALUES ('`cat $f`')"; done
Ahhhh, it works! I'll have to find out what's wrong with my shell scripting
but using this command line works for now.
Thanks to all.
Warren
>
>Devinder Rajput
>Stores Division Corporate Offices
>Chicago, IL
>(773) 442-6474
_________________________________________________________________
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*.
http://join.msn.com/?page=features/virus