Cat command does not respect new line

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Cat command does not respect new line
# 22  
Old 11-07-2016
mailx regards (former) *nix text files that contain control characters like ^M (<CR>, \r) as binary files, no more text files, and thus attaches them.
If you can't live with the binary attachment, send *nix text files and deal with the formatting on the receiving side.
# 23  
Old 11-07-2016
Tools

Quote:
Originally Posted by RudiC
mailx regards (former) *nix text files that contain control characters like ^M (<CR>, \r) as binary files, no more text files, and thus attaches them.
If you can't live with the binary attachment, send *nix text files and deal with the formatting on the receiving side.
Can you please explain how-to send *nix text files

meanwhile I do not have uuencode
# 24  
Old 11-07-2016
Oops and I got it wrong I just did a dos2ux.. Sorry about that

Try to write a script that you call ux2dos with just this inside:
Code:
awk '{printf("%s\015\n", $0)}' $1 > $2

then make it executable
Code:
 chmod 775 ux2dos

then try with your hello.txt:
Code:
 ./ux2dos hello.txt newhello.txt

and see what you get with vi edting with vi newhello.txt now you should have the ^M char at the end of lines
What I have noticed though is on that on this debian cat doesnt print the unprintable char unless you specify with -v option:
Code:
ort-f/vbe $ ./ux2dos 0001.txt 0001_conv.txt
mnas:/port-f/vbe $ cat -v 0001_conv.txt
 1 2 3 4 5 6 7 8 9^M
1 2 3 4 5^M
3 4 5 6^M
5 6 7^M
6 7^M
mnas:/port-f/vbe $ cat 0001_conv.txt
 1 2 3 4 5 6 7 8 9
1 2 3 4 5
3 4 5 6
5 6 7
6 7

I wonder if that was not our issue as I dont see why all our suggestions fails from the beginning

Last edited by vbe; 11-07-2016 at 09:55 AM..
# 25  
Old 11-07-2016
And just tested the alias version going this time the right way:
Code:
mnas:/port-f/vbe $ alias ux2dos='sed "s/ \{1,\}$/^M/" | sed "$ s/^Z//"'
mnas:/port-f/vbe $ cat 0001_conv.txt| ux2dos
 1 2 3 4 5 6 7 8 9
1 2 3 4 5
3 4 5 6
5 6 7
6 7
mnas:/port-f/vbe $ cat -v 0001_conv.txt| ux2dos
 1 2 3 4 5 6 7 8 9^M
1 2 3 4 5^M
3 4 5 6^M
5 6 7^M
6 7^M
mnas:/port-f/vbe $ which ux2dos
mnas:/port-f/vbe $                                              # no answer meaning the above used the alias...

So now you should be able to finalise...
# 26  
Old 11-07-2016
I tried your suggestions.

Code:
cat -v hello.txt | mailx -s "Alert" mymail@mycom.com

This did not help and the newlines were ignored in the email body.

Code:
more ux2dos
 awk '{printf("%s\015\n", $0)}' $1 > $2
 chmod 775 ux2dos
 ./ux2dos hello.txt hello1.txt
 cat -ev hello1.txt
 1^M
 2^M
 3^M
 cat hello1.txt | mailx -s "Alert" mymail@mycom.com

I do see the new line in the email but as an email attachment and not as a email body.

Appreciate your suggestions, but still no solutions.

---------- Post updated at 09:12 AM ---------- Previous update was at 09:05 AM ----------

Quote:
Originally Posted by vbe
And just tested the alias version going this time the right way:
Code:
mnas:/port-f/vbe $ alias ux2dos='sed "s/ \{1,\}$/^M/" | sed "$ s/^Z//"'
mnas:/port-f/vbe $ cat 0001_conv.txt| ux2dos
 1 2 3 4 5 6 7 8 9
1 2 3 4 5
3 4 5 6
5 6 7
6 7
mnas:/port-f/vbe $ cat -v 0001_conv.txt| ux2dos
 1 2 3 4 5 6 7 8 9^M
1 2 3 4 5^M
3 4 5 6^M
5 6 7^M
6 7^M
mnas:/port-f/vbe $ which ux2dos
mnas:/port-f/vbe $                                              # no answer meaning the above used the alias...

So now you should be able to finalise...
I tried this.

Code:
 
 alias ux2dos='sed "s/ \{1,\}$/^M/" | sed "$ s/^Z//"'
  
 which ux2dos
alias ux2dos='sed "s/ \{1,\}$/^M/" | sed "$ s/^Z//"'
        /bin/sed
        /bin/sed

bash$ cat -v hello.txt | ux2dos | mailx -s "Alert" mymail@mycom.com

Received the email with email body having new lines missing again like this
Code:
 
  
 1^M2^M3^M


Last edited by mohtashims; 11-07-2016 at 10:26 AM..
# 27  
Old 11-07-2016
???
What does
Code:
 cat -v hello.txt | ux2dos

give you?

I just tried:
Code:
cat 0001_conv.txt| ux2dos |\mail -s "testing newline MS " vbe@....

and got correct message, and more I tried here with ttext file without -v ...
# 28  
Old 11-07-2016
Tools

Quote:
Originally Posted by vbe
???
What does
Code:
 cat -v hello.txt | ux2dos

give you?
Code:
 
 ./ux2dos hello.txt hello1.txt
  
 cat -v hello.txt | ux2dos
 1
 2
 3
  
 cat -v hello1.txt | ux2dos
 1^M
 2^M
 3^M

---------- Post updated at 09:52 AM ---------- Previous update was at 09:34 AM ----------

Quote:
Originally Posted by vbe
???
What does
Code:
 cat -v hello.txt | ux2dos

give you?

I just tried:
Code:
cat 0001_conv.txt| ux2dos |\mail -s "testing newline MS " vbe@....

and got correct message, and more I tried here with ttext file without -v ...
I tried the same ... but new lines are lost in the email body.

I tried mail instead of mailx but no luck.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Script to cat and dd last line!!! of each file

hi Guys, Am new to this awesome forum, and yea i need some help here asap thnx :) i have a directory with over 34000 text files, i need a script that will delete the last line of each of this file without me necessary opening the files. illustration:- file1 200 records file2 130 records... (5 Replies)
Discussion started by: eetang
5 Replies

2. Shell Programming and Scripting

for loop with whole line using cat

Hi all, I need to create loop script to read full line and append a variable to each line. cat file I need the output like below 10.0.0.1,136 1 24 048800 id N4 No_Light 10.0.0.1,137 1 25 048900 id N4 No_Light 10.0.0.1,140 1 28 048c00 id N4 No_Light 10.0.0.1,262 1 38 048e80... (13 Replies)
Discussion started by: ranjancom2000
13 Replies

3. Shell Programming and Scripting

Shell Scripting:Fetching content from each line with respect to pattern.

one.txt ONS.820.log:V 20Oct2010:GP ^ ^ ONS.123.log:V 21Oct2010:GP ^ ^ ONS.820.log:V 30Oct2010:GP ^ ^ want to make new file from existing one with addition. 20Oct2010 User KV001 has name tk003 with buffer- 338-1 21Oct2010 User KV003 has name tk002 with buffer- 338-2 30Oct2010 User KV002... (5 Replies)
Discussion started by: saluja.deepak
5 Replies

4. Shell Programming and Scripting

bash: cat multiple files together except first line?

Hopefully the title summarized what I need help with. I have multiple files that I would like to concatenate in bash. ie: cat file1 file2 file3 > bigfile except I do not want to include the first line from each file (). Any help? Thanks. (6 Replies)
Discussion started by: sanimfj
6 Replies

5. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

6. Shell Programming and Scripting

cat file1 read line-per-line then grep -A 15 lines down in fileb

STEP 1 # Set variable FILE=/tmp/mainfile SEARCHFILE =/tmp/searchfile # THIS IS THE MAIN FILE. cat /tmp/mainfile Interface Ethernet0/0 "outside", is up, line protocol is up Hardware is i82546GB rev03, BW 100 Mbps Full-Duplex(Full-duplex), 100 Mbps(100 Mbps) MAC address... (6 Replies)
Discussion started by: irongeekio
6 Replies

7. UNIX for Dummies Questions & Answers

Difference between cat , cat > , cat >> and touch !!!

Hi Can anybody tell the difference between Difference between cat , cat > , cat >> and touch command in UNIX? Thanks (6 Replies)
Discussion started by: skyineyes
6 Replies

8. UNIX for Advanced & Expert Users

Amoung tar and gzip whiich unix command is more practical with respect to space manag

Hi All Can any body help me out. Amoung tar and gzip whiich unix command is more practical with respect to space management and file restoration. Eg if I use tar or gzip which will be more helpful to reduce the space and during the file restoration. Please help me out. regards... (3 Replies)
Discussion started by: manas6
3 Replies

9. Shell Programming and Scripting

Cat'ing a multiple line file to one line

I am writing a script that is running a loop on one file to obtain records from another file. Using egrep, I am finding matching records in file b, then outputing feilds of both into another file. **************************** filea=this.txt fileb=that.txt cat $filea | while read line do... (1 Reply)
Discussion started by: djsal
1 Replies

10. UNIX for Dummies Questions & Answers

using 'cat' to in 'while read line'

Hi, I'm having some trouble reading a file that was 'cat' through a while loop. Can anyone suggest alternatives? what i do is cat filename|grep *.stuff while read line do echo $line ... and other commands done The cat,grep line seems to work correctly, but the script hangs when i add in... (3 Replies)
Discussion started by: chugger06
3 Replies
Login or Register to Ask a Question