Sponsored Content
Top Forums Shell Programming and Scripting add character to the end of each line in file Post 302338002 by durden_tyler on Sunday 26th of July 2009 10:45:18 PM
Old 07-26-2009
Quote:
Originally Posted by naamas03
...
i have 32 lines in file. the length of each line is 82 , i want that in the end of each line , means in postion 83-84 to put two characters 0d(=\015), 0a(=\012)
...
If your file was created in Unix/Linux or any of their variants, then it would have "\012" (or ASCII decimal 10 or "newline" character) at the last position.

If it was created in MS Windows, DOS, OS/2 etc. then it would have "\015" and "\012" ( CR+LF ) at the last two positions.

Since you are asking about CR+LF, I'd assume your file was created in Unix/Linux and has "\n" as the end-of-line character.

The sed command proposed earlier won't give correct results because it adds "\r\n" at the end, i.e. after the "\n" at the end.

Code:
$ 
$ # my system is Linux
$ uname -o
GNU/Linux
$ 
$ # create a file
$ for i in 1 2 3 ; do
>   echo "ABCDEF-LINE:00$i"
> done >data.txt
$ 
$ cat data.txt
ABCDEF-LINE:001
ABCDEF-LINE:002
ABCDEF-LINE:003
$ 
$ # check the octal dump
$ od -bc data.txt
0000000 101 102 103 104 105 106 055 114 111 116 105 072 060 060 061 012
          A   B   C   D   E   F   -   L   I   N   E   :   0   0   1  \n
0000020 101 102 103 104 105 106 055 114 111 116 105 072 060 060 062 012
          A   B   C   D   E   F   -   L   I   N   E   :   0   0   2  \n
0000040 101 102 103 104 105 106 055 114 111 116 105 072 060 060 063 012
          A   B   C   D   E   F   -   L   I   N   E   :   0   0   3  \n
0000060
$ 
$ # so we have just the "\n" as the EOL character
$ # try the sed script
$ sed 's/$/\r\n/' data.txt > new_data.txt
$ 
$ # check the octal dump
$ od -bc new_data.txt
0000000 101 102 103 104 105 106 055 114 111 116 105 072 060 060 061 015
          A   B   C   D   E   F   -   L   I   N   E   :   0   0   1  \r
0000020 012 012 101 102 103 104 105 106 055 114 111 116 105 072 060 060
         \n  \n   A   B   C   D   E   F   -   L   I   N   E   :   0   0
0000040 062 015 012 012 101 102 103 104 105 106 055 114 111 116 105 072
          2  \r  \n  \n   A   B   C   D   E   F   -   L   I   N   E   :
0000060 060 060 063 015 012 012
          0   0   3  \r  \n  \n
0000066
$ 
$ cat new_data.txt
ABCDEF-LINE:001

ABCDEF-LINE:002

ABCDEF-LINE:003

$

Here's one way to do it in Perl:

Code:
$ 
$ cat data.txt
ABCDEF-LINE:001
ABCDEF-LINE:002
ABCDEF-LINE:003
$ 
$ perl -ne 's/\n/\r\n/; print' data.txt >mod_data.txt
$ 
$ od -bc mod_data.txt
0000000 101 102 103 104 105 106 055 114 111 116 105 072 060 060 061 015
          A   B   C   D   E   F   -   L   I   N   E   :   0   0   1  \r
0000020 012 101 102 103 104 105 106 055 114 111 116 105 072 060 060 062
         \n   A   B   C   D   E   F   -   L   I   N   E   :   0   0   2
0000040 015 012 101 102 103 104 105 106 055 114 111 116 105 072 060 060
         \r  \n   A   B   C   D   E   F   -   L   I   N   E   :   0   0
0000060 063 015 012
          3  \r  \n
0000063
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Deleting end of line $ character in file

Hi, I've got a file where in the middle of the record is a $ end of line character, visible only when I open the file in vi and do :set list. How to I get rid of the character in the middle and keep it at the end. The middle $ character always appears after SW, so that can be used to tag it.... (3 Replies)
Discussion started by: bwrynz1
3 Replies

2. UNIX for Dummies Questions & Answers

removing a character and addending to end in each line in a file

HI i am having a file this (sys19:pnlfct:/pfact/temp>) cat temp_sand 1234567890 1234567890 1234567890 1234567890 I want to make this file as (sys19:pnlfct:/pfact/temp>) cat temp_sand 1456789023 1456789023 1456789023 1456789023 just take the 2nd and 3rd position and put it... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies

3. UNIX for Dummies Questions & Answers

How to add new line character at the end of a file

hi all, i have this question: How to add new line character at the end of a file???? i need this because i am loading a file to sybase and i have problems with the last record thanks for your help (5 Replies)
Discussion started by: DebianJ
5 Replies

4. Shell Programming and Scripting

append a character at end of each line of a file

Hi, i want to append a character '|' at end of each line of a file abc.txt. for example if the file abc.txt conatins: a|b|c 1|2|33 w|2|11 i want result file xyz.txt a|b|c| 1|2|33| w|2|11| I know this is simple but sumhow i am not able to reach end of line. its urgent, thanks for... (4 Replies)
Discussion started by: muaz
4 Replies

5. Shell Programming and Scripting

add character to every end-of line in file

Hi All I have a file which conatins record.the length of every records is 47. problem : in the end of record i don't have a "\015" character. i want to add this "\015" charcter in the end of every record. the file contains something like 700 records. i've tried with sed command - nothing. ... (8 Replies)
Discussion started by: naamas03
8 Replies

6. Shell Programming and Scripting

How to remove new line character at end of file.

I need to remove new line character from end of file. Suppose here are content. a|b|c|d|r a|b|c|d|r a|b|c|d|r <new line> that means file contains 4 lines but data is there in 3 lines. so I want that only 3 lines should be there in file. Please help (20 Replies)
Discussion started by: varun940
20 Replies

7. Shell Programming and Scripting

How to Remove comma as last character in end of last line of file?

how to Remove comma as last charector in end of last line of file: example: input file --------------- aaaaaa, bbbbbb, cccc, 12345, ____________ output file : ----------- aaaaaa, bbbbbb, (6 Replies)
Discussion started by: RahulJoshi
6 Replies

8. Shell Programming and Scripting

How to add a character at end of line?

Hai, I have got a small requirement in my script. and i am using bash shell. I need to add a dot (.) for some particular line in a file. Say for example, $Cat rmfile 1 This is line1 2 This is line2 3 This is line3 O/p should be : $Cat rmfile 1 This is line1 2 This is line2. #... (2 Replies)
Discussion started by: Sivajee
2 Replies

9. Shell Programming and Scripting

How to add newline character at end of file?

Hi All, I have following piece of code in UNIX C Shell script and I want to add one more command which can add newline at the end of file only if there is no newline character exists. foreach file (`ls $dd_PLAYCARD_EDI_IN`) if ( -f $dd_PLAYCARD_EDI_IN/${file} ) then cat -n... (4 Replies)
Discussion started by: jnrohit2k
4 Replies

10. Shell Programming and Scripting

Conditionally add character at end of line

Hi, I would like have a shell script to check every line in a file to see if it ends with ";". If this is NOT the last character ";" should be added. MyFile.csv : web9331801;01/01/2014 23:39:35;;"93962";353150256; web9331802;01/01/2014 23:44:29;;"479288";353153538; web9331803;01/01/2014... (14 Replies)
Discussion started by: vg77
14 Replies
PASTE(1)						    BSD General Commands Manual 						  PASTE(1)

NAME
paste -- merge corresponding or subsequent lines of files SYNOPSIS
paste [-s] [-d list] file ... DESCRIPTION
The paste utility concatenates the corresponding lines of the given input files, replacing all but the last file's newline characters with a single tab character, and writes the resulting lines to standard output. If end-of-file is reached on an input file while other input files still contain data, the file is treated as if it were an endless source of empty lines. The options are as follows: -d list Use one or more of the provided characters to replace the newline characters instead of the default tab. The characters in list are used circularly, i.e., when list is exhausted the first character from list is reused. This continues until a line from the last input file (in default operation) or the last line in each file (using the -s option) is displayed, at which time paste begins selecting characters from the beginning of list again. The following special characters can also be used in list: newline character tab character \ backslash character Empty string (not a null character). Any other character preceded by a backslash is equivalent to the character itself. -s Concatenate all of the lines of each separate input file in command line order. The newline character of every line except the last line in each input file is replaced with the tab character, unless otherwise specified by the -d option. If '-' is specified for one or more of the input files, the standard input is used; standard input is read one line at a time, circularly, for each instance of '-'. The paste utility exits 0 on success, and >0 if an error occurs. SEE ALSO
cut(1) STANDARDS
The paste utility is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible. BSD
June 6, 1993 BSD
All times are GMT -4. The time now is 05:50 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy