strange sed behavior


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers strange sed behavior
# 1  
Old 06-12-2003
strange sed behavior

I have a file called products.kp which contains, for example,

12345678,1^M
87654321,2^M
13579123,3

when I run the command

cat products.kp| sed -f kp.sed

where kp.sed contains

s,^M,,

I get the output

12345678,1
87654321,2
13579123,3

so everything is ok.


However, when I run this command on another unix box, I get the output

12345678,1
87654321,2

ie. I don't get the last line returned.

has anyone any idea why? or a different way to do it in sed?

Thanks

ps. I'm using Sco and Bourne shell
# 2  
Old 06-12-2003
If you have accurately described the situation, your version of sed has a bug. Complain to your vendor.

However, note that sed is line based. A line is a sequence of characters followed by a newline character. The last character of your file must be a newline character. If this is not the case, the results are undefined and both versions of sed are working correctly.
# 3  
Old 06-12-2003
Thanks,

the file does always have a missing ^M on the last line. Is there any way I can get around this?

To give you a brief outline, the suppliers of the package that produces this file for our system have done a new release which produces the file as described (whereas it used to have a ^M on every line).

On our system, which is released across 220 unix boxes, I run the 'sed -f kp.sed' command, so the only thing I can realistically change is the contents of kp.sed (maybe to append a ^M to every line then substitute it for '' ?)

or am I done for & will just have to wait for their fix to their system?
# 4  
Old 06-12-2003
I'm not really following you, but here are some comments that might clear up some confusion.

A control M in not a newline character. Control M's are not required in a line. If you have a text file that is missing the last newline character, you can append one with:
echo >> file

How many lines does "wc -l" find in your file?

To get rid of Control M's, you may have a program called dos2unix. You can also use "tr -d". And there are other solution that have been mentioned before as a substitute for dos2unix. You might try our search function since they have been mentioned before.
# 5  
Old 06-13-2003
I've sorted it now, I ended up using dtox & then echoing it to a file like you suggested. This sort of thing

>$1.okp
dtox $1.kp > $1.dtox
for line in `cat $1.dtox`
do
echo $line >> $1.okp
done

Have to release a patch over 220 boxes now though!
# 6  
Old 06-13-2003
Bug

Thanks for all your help.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strange behavior of grep

Hi All, I am facing a strange problem while grepping for a process. Here is the small script that i have written. It will look for any process running with the parameter passed to the script. If no process is running it should print appropriate message. $ cat t.ksh #!/bin/ksh set -x ... (9 Replies)
Discussion started by: veeresh_15
9 Replies

2. AIX

Strange behavior with tar

I am trying to create an archive using tar. I am specifying a list of directories using the -L option. For testing purposes I created a simple directory structure: /backup/test /backup/test/test1 /backup/test/test2 The file specified by the -L option, named files.txt, contains:... (8 Replies)
Discussion started by: judykstra
8 Replies

3. Shell Programming and Scripting

Strange behavior on one of my server

I am not sure what is wrong, but I have some strange behavior when printing things out. I do create a file with only one word test, no space, no new line etc. nano file<enter> test<ctrl x>y<enter> Server 1 gets (fail) awk '{print "+"$0"*"}' file *test Server 2 gets (OK) awk '{print... (9 Replies)
Discussion started by: Jotne
9 Replies

4. Red Hat

strange mail behavior

Hi I have script to to take backup and send mail to a group once a day. One strange behavior I have observed recently is that most of the time the mail we receive is fine . But someday it just sends out mail without any subject with undisclosed recipients. I dont know how to find the cause... (0 Replies)
Discussion started by: ningy
0 Replies

5. Ubuntu

Ubuntu strange behavior

It is so till login screen. I mean that when I boot my computer, Ubuntu shows a splash screen with mouse instead of Ubuntu logo and in the login screen it shows XUbuntu login screen... It began when I upgraded to previous kernel, I suppose, but I'm not sure... I can't say that it annoys me very... (6 Replies)
Discussion started by: Sapfeer
6 Replies

6. Programming

Strange behavior in C++

I have the following program: int main(int argc, char** argv){ unsigned long int mean=0; for(int i=1;i<10;i++){ mean+=poisson(12); cout<<mean<<endl; } cout<<"Sum of poisson: "<< mean; return 0; } when I run it, I get the... (4 Replies)
Discussion started by: santiagorf
4 Replies

7. Shell Programming and Scripting

sed strange quotes behavior

Hi gurus input file: 1 2 3 4 desired output 1 2\ 2a 3 4 I tried (6 Replies)
Discussion started by: wakatana
6 Replies

8. Shell Programming and Scripting

nawk strange behavior

Dear guys; when deleting repeated lines using nawk as below ; Why the below syntax works? nawk ' !a++' infile > outfile and when using the other below syntax the nawk doesn't work? nawk ' { !a++ } ' infile > outfile or nawk ' { !a++ } ' infile > outfile BR (4 Replies)
Discussion started by: ahmad.diab
4 Replies

9. Shell Programming and Scripting

Very Strange Behavior for redirection

I have searched far and wide for an explanation for some odd behavior for output redirection and haven't come up with anything. A co-worker was working on old scripts which have run for years and embedded in their code were output redirects which worked for the script during execution and then... (5 Replies)
Discussion started by: cahook
5 Replies

10. UNIX for Dummies Questions & Answers

Strange Behavior on COM2

Hi, I have a problem with a new touch screen controller that I am trying to use on a SCO 3.0 system. THe touch screen controller only wants to talk at 9600baud. I have updated /etc/inittab per the manual and also edited /usr/lib/event/devices to use 9600 baud. The only way I can get the... (0 Replies)
Discussion started by: Elwood51
0 Replies
Login or Register to Ask a Question