Appending newline character End of File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Appending newline character End of File
# 1  
Old 12-30-2013
Appending newline character End of File

Hi Gurus,

Need help. I'm a beginner in Unix. I have a requirement, need to add or append newline (\n) character in file.

Sample Data:

Code:
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#

Output:

Code:
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#\n -- append only for the last line.

Thank You.

Gouri Solleti

Last edited by bartus11; 12-30-2013 at 03:03 PM.. Reason: Please use code tags
# 2  
Old 12-30-2013
Code:
sed '${s/$/\n/}' file

Add the -i switch to the sed command to make the actual change to the file.
# 3  
Old 12-30-2013
Hello Gouri,

Here are 2 approaches may help for same.


1st:
Code:
awk 'NR==1 || NR==2 || NR==3 {print} NR==4 {print $0"\\n"}' add_new_line_char1
 
Output will be as follows.
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#\n



2nd:

Code:
awk '/^4/ {print $0"\\n"} !/^4/' add_new_line_char1
 
Output will be as follows.
 
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#\n


Thanks,
R. Singh
# 4  
Old 12-30-2013
Simplest method use _echo ""_...
Code:
#!/bin/bash --posix
echo "Your example string..."
echo -n "1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#" > /tmp/text
hexdump -C < /tmp/text
cat < /tmp/text
echo "Now add a newline at the end..."
echo "" >> /tmp/text
### OR ###
# echo '\n' >> /tmp/text
hexdump -C < /tmp/text
cat < /tmp/text

Results:-
Code:
Last login: Mon Dec 30 18:15:02 on ttys000
AMIGA:barrywalker~> chmod 755 add_nl.sh
AMIGA:barrywalker~> ./add_nl.sh
Your example string...
00000000  31 7c 4d 61 69 6e 7c 54  65 73 74 7c 7e 23 0a 32  |1|Main|Test|~#.2|
00000010  7c 4d 61 69 6e 7c 48 65  6c 6c 6f 7c 7e 23 0a 33  ||Main|Hello|~#.3|
00000020  7c 4d 61 69 6e 7c 55 6e  69 78 7c 7e 23 0a 34 7c  ||Main|Unix|~#.4||
00000030  4d 61 69 6e 7c 46 69 6c  65 7c 7e 23              |Main|File|~#|
0000003c
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#Now add a newline at the end...
00000000  31 7c 4d 61 69 6e 7c 54  65 73 74 7c 7e 23 0a 32  |1|Main|Test|~#.2|
00000010  7c 4d 61 69 6e 7c 48 65  6c 6c 6f 7c 7e 23 0a 33  ||Main|Hello|~#.3|
00000020  7c 4d 61 69 6e 7c 55 6e  69 78 7c 7e 23 0a 34 7c  ||Main|Unix|~#.4||
00000030  4d 61 69 6e 7c 46 69 6c  65 7c 7e 23 0a           |Main|File|~#.|
0000003d
1|Main|Test|~#
2|Main|Hello|~#
3|Main|Unix|~#
4|Main|File|~#
AMIGA:barrywalker~> _

# 5  
Old 12-30-2013
Quote:
Originally Posted by in2nix4life
Code:
sed '${s/$/\n/}' file

Add the -i switch to the sed command to make the actual change to the file.
Below is the command I used:
Code:
sed '${s/$/\n/}' sample.txt

tried
Code:
sed '${s/$/\n/}' >sample.txt

giving error as -
Code:
sed: command garbled: ${s/$/\n/}

---------- Post updated at 01:24 PM ---------- Previous update was at 01:22 PM ----------

Hi Ravinder,

When I used the code, it is working fine for only 4 lines. If I add additional line it is not working. The number of lines in the file could be anything. Which we don't know until the file is generated.

Thank you.

Last edited by Franklin52; 12-30-2013 at 03:31 PM.. Reason: Please use code tags
# 6  
Old 12-30-2013
ok Gouri, could you please let us know at which place or expected output for same so that we can help you more for same.



Thanks,
R. Singh
# 7  
Old 12-30-2013
Try
Code:
awk '1;  END{print ""}' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove newline character if it is the only character in the entire file.?

I have a file which comes every day and the file data look's as below. Vi abc.txt a|b|c|d\n a|g|h|j\n Some times we receive the file with only a new line character in the file like vi abc.txt \n (8 Replies)
Discussion started by: rak Kundra
8 Replies

2. Shell Programming and Scripting

No newline at end of file

Hello all, I have maybe a simple Problem - but I do not know to handle it. All what I want, is to write a line to file without a newline at the end. It works with "echo -n" for all lines, but not for the last one. At the end of the file is always a "0a" (hex) My small script: ... (10 Replies)
Discussion started by: API
10 Replies

3. Shell Programming and Scripting

Warning while sorting : A newline character was added to the end of file

Hi, I am trying to sort a csv file which has say 10 lines each line having a row size that is upto 30183 no. of COLUMNS (Row length = 30183). There is a LINE FEED (LF) at the end of each line. When I try to sort this file say, based on the second FIELD using the below command, sort -t ',' +1... (5 Replies)
Discussion started by: DHeisenberg
5 Replies

4. 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

5. Shell Programming and Scripting

Appending a new field at the end in a file

can anyone tell me please ......how to append a new field at the end of a file with the help of sed or some other command in bourne shell (8 Replies)
Discussion started by: amitpta
8 Replies

6. Shell Programming and Scripting

Appending string at the end of the file

Hello, I wanted to append 'XYZ' at the end of the text file. How can i do this? I searched the forums and i am not getting what i want. Any help is highly appreciated. Thanks (2 Replies)
Discussion started by: govindts
2 Replies

7. Shell Programming and Scripting

appending date at the end of the file

I have file called xx Now i want to rename this file as xxYYYYMMDD_HHMIAM.xls Here is my code.. export DATE1=`date +%Y%m%d` mv xx xx$DATE1 This code renames as xxYYYYMMDD Now how can i append HHMIAM at the end of the file? Any help is appreciated... (3 Replies)
Discussion started by: govindts
3 Replies

8. Shell Programming and Scripting

To remove the newline character while appending into a file

Hi All, We append the output of a file's size in a file. But a newline character is appended after the variable. Pls help how to clear this. filesize=`ls -l test.txt | awk `{print $5}'` echo File size of test.txt is $filesize bytes >> logfile.txt The output we got is, File size of... (4 Replies)
Discussion started by: amio
4 Replies

9. Shell Programming and Scripting

How to remove a newline character at the end of filename

Hi All, I have named a file with current date,time and year as follows: month=`date | awk '{print $2}'` date=`date | awk '{print $3}'` year=`date | awk '{print $6}'` time=`date +%Hh_%Mm_%Ss'` filename="test_"$month"_"$date"_"$year"_"$time".txt" > $filename The file is created with a... (2 Replies)
Discussion started by: amio
2 Replies

10. Shell Programming and Scripting

Append newline at the file end

Hi All, Is there any way to append a newline character at the end of a file(coma-separated file), through shell script? I need to check whether newline character exists at the end of a file, if it does not then append it. Regards, Krishna (1 Reply)
Discussion started by: KrishnaSaran
1 Replies
Login or Register to Ask a Question