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 |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
|
07-11-2007, 06:40 AM
|
#1
|
LQ Newbie
Registered: May 2007
Posts: 20
Rep:
|
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
|
|
|
07-11-2007, 06:46 AM
|
#2
|
Moderator
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417
|
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.
|
|
|
07-11-2007, 07:09 AM
|
#3
|
LQ Newbie
Registered: May 2007
Posts: 20
Original Poster
Rep:
|
I have the same error with:
cat pruebased | sed -e 's/$/this to the final/g' > prueba
What is binary file in linux?
|
|
|
07-11-2007, 07:24 AM
|
#4
|
LQ Veteran
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Mint
Posts: 17,809
|
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.
|
|
|
07-11-2007, 07:34 AM
|
#5
|
LQ Guru
Registered: Aug 2003
Distribution: CentOS, OS X
Posts: 5,131
Rep:
|
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.
|
|
|
07-11-2007, 07:58 AM
|
#6
|
LQ Veteran
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Mint
Posts: 17,809
|
Touche!!
I was being sloppy (because I often use "cat" interchangeably with "more")
|
|
|
07-11-2007, 08:26 AM
|
#7
|
Moderator
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417
|
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...
|
|
|
07-11-2007, 09:01 AM
|
#8
|
Senior Member
Registered: Oct 2005
Location: UK
Distribution: Slackware
Posts: 1,847
Rep:
|
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...?
|
|
|
07-11-2007, 09:22 AM
|
#9
|
Senior Member
Registered: Jul 2004
Location: France
Distribution: Arch Linux
Posts: 1,897
Rep:
|
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.
|
|
|
07-11-2007, 02:15 PM
|
#10
|
Member
Registered: Feb 2007
Posts: 37
Rep:
|
nerds...
|
|
|
All times are GMT -5. The time now is 10:20 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|