LinuxQuestions.org
Latest LQ Deal: Linux Power User Bundle
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 07-11-2007, 06:40 AM   #1
Coimbra
LQ Newbie
 
Registered: May 2007
Posts: 20

Rep: Reputation: 0
What is bad in this sentence?


cat pruebased | sed s/$/this to the final/g > pruebased


the error is:

..... ./sed.sh: cannot execute binary file

thanks to all
 
Old 07-11-2007, 06:46 AM   #2
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975
wrong kind of quote marks isn't it? not sure what they even are. try...

cat pruebased | sed -e 's/$/this to the final/g' > pruebased

and writing to your own file is a VERY bad thing... use a temporary file and then replace the file afterwards if that's the result you really want.
 
Old 07-11-2007, 07:09 AM   #3
Coimbra
LQ Newbie
 
Registered: May 2007
Posts: 20

Original Poster
Rep: Reputation: 0
I have the same error with:

cat pruebased | sed -e 's/$/this to the final/g' > prueba

What is binary file in linux?
 
Old 07-11-2007, 07:24 AM   #4
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Arch/XFCE
Posts: 17,802

Rep: Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738
Quote:
Originally Posted by Coimbra
I have the same error with:

cat pruebased | sed -e 's/$/this to the final/g' > prueba

What is binary file in linux?
A binary file is usually an executable, but could also be an image--eg a jpeg. More generally, any file that cannot be decoded to text using ascii, utf-8, etc.

I assume your error will be the same if you just do "cat pruebased"

You added "-e" in you second example---why? (It means gets instructions from a script)

Note also that you can use the "-i_ switch to have sed edit the file "in place.
 
Old 07-11-2007, 07:34 AM   #5
b0uncer
LQ Guru
 
Registered: Aug 2003
Distribution: CentOS, OS X
Posts: 5,131

Rep: Reputation: Disabled
Quote:
I assume your error will be the same if you just do "cat pruebased"
Not really, cat (concatenate) can deal with any file, not just text files. That's why you can use
Code:
cat /usr/bin/somebinary > /usr/bin/someotherbinary
to copy stuff.
 
Old 07-11-2007, 07:58 AM   #6
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Arch/XFCE
Posts: 17,802

Rep: Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738Reputation: 738
Touche!!
I was being sloppy (because I often use "cat" interchangeably with "more")
 
Old 07-11-2007, 08:26 AM   #7
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975Reputation: 1975
I always thought -e meant extended... it doesn't mean run a script file as such, just run the following as if it were a script i think, so the language of the regex is enhanced or summat... never actually written a full grep script before...
 
Old 07-11-2007, 09:01 AM   #8
pwc101
Senior Member
 
Registered: Oct 2005
Location: UK
Distribution: Slackware
Posts: 1,847

Rep: Reputation: 128Reputation: 128
Quote:
Originally Posted by Coimbra
cat pruebased | sed s/$/this to the final/g > pruebased


the error is:

..... ./sed.sh: cannot execute binary file

thanks to all
Just to be pedantic, we have a UUOC here:
Code:
cat pruebased | sed s/$/this to the final/g > pruebased
could be:
Code:
sed 's/$/this to the final/g' pruebased > pruebased.out
Unless there's some rule about binary files as input and sed...?
 
Old 07-11-2007, 09:22 AM   #9
theYinYeti
Senior Member
 
Registered: Jul 2004
Location: France
Distribution: Arch Linux
Posts: 1,897

Rep: Reputation: 63
Your error seems to indicate that you use back-quotes (`) instead of single quotes (') or double quotes ("). The kind you used in your first post (’) is yet another (invalid) kind.

Apart from that, just a small note: the 'g' in your expression is useless as the /$/ pattern can appear only once per line (this means "end of line").

As for the extended regexps, this is done with the -r option in sed. -e is the same for grep.

Yves.
 
Old 07-11-2007, 02:15 PM   #10
jkillah1
Member
 
Registered: Feb 2007
Posts: 37

Rep: Reputation: 15
nerds...

 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Why do I get true with if sentence in bash? nadavvin Programming 7 01-24-2007 01:35 AM
Random Sentence Generator? gandil Linux - Newbie 7 01-01-2006 10:14 AM
What does this sentence mean? shadkong Slackware 9 04-07-2005 06:42 AM
Removing a preceding pattern from each sentence ganninu Programming 2 12-11-2003 07:15 AM
I Think M$ has the order of this sentence Mixed up, don't you think! ;) shassouneh General 14 06-02-2002 07:43 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 05:57 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration