How to replace ^J in unix file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to replace ^J in unix file
# 1  
Old 11-02-2010
How to replace ^J in unix file

Hi,

i am facing issue while reading files in unix, which has ^J at end of every line. I want to know how to replace it in the file.

Example: infile.txt has below data
-----------------
20101030^J
110

Now in the above file i want unix command to replace the ^J character . so that i will use in my script for source files to replace the '^J' character.

I am New bee to Control Characters. Dont know how to deal with them. Please help me in fixing this.

Thanks very much in Advance.
KKSmilie
# 2  
Old 11-02-2010
You can try
Code:
sed 's/\^J//g' inputfile


Last edited by Scott; 11-02-2010 at 08:28 AM..
# 3  
Old 11-02-2010
But the sed command not modifying the source file.. it is displaying the data without ^J character . but not modifying the source file.

Quote:
Originally Posted by sanjaypraj
You can try


sed 's/\^J//g' inputfile
# 4  
Old 11-02-2010
This is a strange request because ctrl/j is line-feed is the standard unix line text file terminator.

What software are you using to see this character(s)?
Can you display the file in Hex or Octal so we can see the character(s)?

What do you get for this "sed" enquiry which is designed to make control characters visible:
Code:
sed -n l infile.txt

Sed will not work properly unless we have a correctly formatted text file.
# 5  
Old 11-02-2010
Output it to some other file
Code:
sed 's/\^J//g' inputfile > outputfile


Last edited by Scott; 11-02-2010 at 09:41 AM..
# 6  
Old 11-02-2010
When dealing with characters, that are not easy to type in an editor, I usually find the "offending" character with od. od can be found on most *nixes, and supports multiple ways to display it's input.

Here are a few examples. First I created some arbitary data:
Code:
perl -e 'print chr($_) for (1..10);' > some_data

And the outputs of od for that file:

Hexadecimal 2-byte output:
Code:
$ od -h < some_data
0000000 0201 0403 0605 0807 0a09
0000012

Hexadecimal 2-byte output with the characters next to it:
Code:
$ od -hc < some_data
0000000 0201 0403 0605 0807 0a09
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Octal 2-byte output with the characters:
Code:
$ od -oc < some_data
0000000 001001 002003 003005 004007 005011
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Octal output with the characters:
Code:
$ od -bc < some_data
0000000 001 002 003 004 005 006 007 010 011 012
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Then just use sed or something similar to remove/translate the characters.

EDIT: Added last example.
# 7  
Old 11-02-2010
I have done the file ftp and place it in AIX box. Now i am surprised with the source file... it is not showing any special character in the file when i opened through vi. but when i have given the command tail -1 input.txt.. it is not giving the last line , it is giving all the two lines from the source file.

file inut.txt:
-----------
20101021
1023

Below is the output after giving the command tail -1 input.txt:
20101021
1023

it is displaying all the lines from the source file Smilie. I am shocked tat why it is happening even though there is no special character visible in the file.
How to fix this. and identify the special character.
Please suggest how to fix it

Thanks In Advance
kk


Quote:
Originally Posted by ikki
When dealing with characters, that are not easy to type in an editor, I usually find the "offending" character with od. od can be found on most *nixes, and supports multiple ways to display it's input.

Here are a few examples. First I created some arbitary data:
Code:
perl -e 'print chr($_) for (1..10);' > some_data

And the outputs of od for that file:

Hexadecimal 2-byte output:
Code:
$ od -h < some_data
0000000 0201 0403 0605 0807 0a09
0000012

Hexadecimal 2-byte output with the characters next to it:
Code:
$ od -hc < some_data
0000000 0201 0403 0605 0807 0a09
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Octal 2-byte output with the characters:
Code:
$ od -oc < some_data
0000000 001001 002003 003005 004007 005011
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Octal output with the characters:
Code:
$ od -bc < some_data
0000000 001 002 003 004 005 006 007 010 011 012
        001 002 003 004 005 006  \a  \b  \t  \n
0000012

Then just use sed or something similar to remove/translate the characters.

EDIT: Added last example.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Views How to replace a CRLF char from a variable length file in the middle of a string in UNIX?

My sample file is variable length, with out any field delimiters. It has min of 18 chars length and the 'CRLF' is potentially between 12-14 chars. How do I replace this with a space? I still want to keep end of record, but just want to remove these new lines chars in the middle of the data. ... (7 Replies)
Discussion started by: chandrath
7 Replies

2. Emergency UNIX and Linux Support

Need to replace a column value in UNIX file

Hi All, I am having a file like below 01098546 3 56120610010377101008311121 001382 71 003 5011339 01099413 1 42120500010247081106112121 000304 46 002 2011339 I want to replace the 78 column from 3 to 4 and I need the file as below 01098546 ... (1 Reply)
Discussion started by: arunkumar_mca
1 Replies

3. Shell Programming and Scripting

Replace first 3 characters in a unix file in all lines

Replace first 3 characters in a unix file (say replace "A&B" with "C&D") in all lines of the file. Need a sed or awk script to do this. Kindly help! -Kumar (4 Replies)
Discussion started by: vasan2815
4 Replies

4. UNIX for Dummies Questions & Answers

How to replace a file on Unix server with file from my c: drive

I have a Logging.xml file located on my laptop c: drive. I want to take this file and replace the Logging.xml that is currently on my Aix 6.1 Unix server with it. Here is the where the file is located. It is the Logging.xml file ... (8 Replies)
Discussion started by: gregvc
8 Replies

5. Shell Programming and Scripting

Help needed :Search and Replace a string pattern with empty in an xml file in unix

Search and Replace a string pattern with empty in an xml file in unix: My xml file would be like this : <Accounts><Name>Harish</Name><mobile>90844444444444445999 </mobile><TRIG>srcujim-1</TRIG></Accounts><Accounts><Name>Satish</Name><mobile>908999</mobile><TRIG>ettertrtt-1</TRIG></Accounts> ... (1 Reply)
Discussion started by: harish_s_ampeo
1 Replies

6. Shell Programming and Scripting

Replace Date field in Unix File

I have a data file having first 19 characters having the date in the below format- 2010-04-29-00.00.00 I have to check this date field ( first 19 characters) against some specific dates and if date is not in 3 valid dates ( business date available to me , business date - 1 , businessdate... (10 Replies)
Discussion started by: varunrbs
10 Replies

7. UNIX for Dummies Questions & Answers

How to replace the string in unix file?

Hi Am getting "Line too long" error in opening a file using vi editor but it is opening using cat. How can i edit the file to replace some string in it. Thanks (5 Replies)
Discussion started by: param_it
5 Replies

8. Shell Programming and Scripting

replace delimiter : with '\001' in unix data file

HI can any one tell me how to replace a delimiter : with another delimiter '\001' it is a non printable octal character. thanks in adv spandu (4 Replies)
Discussion started by: spandu
4 Replies

9. UNIX for Dummies Questions & Answers

how to replace certain patterns in a file thru unix!!

Hi Friends, well what i want to do is that suppose i have a file say like .... ronaldduckdancecoolman donaldmuckdancepooltactics fonaldguckdancetoolbutcomps .... okok i agree this is a ridiculous data for a file. :-) now i want that the characters in each line fromposition 16 to say 19... (6 Replies)
Discussion started by: mexx_freedom
6 Replies
Login or Register to Ask a Question