deleting the lines at the end of the file.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting deleting the lines at the end of the file.
# 1  
Old 09-09-2010
Hammer & Screwdriver deleting the lines at the end of the file.

I have a text file with two coulmn
first column is just used in to show the line number, these line number are not there in the real file.

I want to delete the line 16(in this file) here, even tough there is no data inside it . this empty line is causing me a problem by throwing me garbage value when i input this stream in my c++ program.

Code:
1   0              2.14014e-07
2   13.214      1.00771e-06
3   13.947      3.76252e-05
4   13.958      5.2692e-06
5   13.966     4.87701e-06
6   14.065     3.81149e-06
7   14.076     3.65411e-06
8   14.29       9.82566e-07
9   17.899     6.10872e-07
10  19.757     7.14666e-07
11  200.947    1.78718e-07
12  226.555    1.34066e-07
13  231.43     1.35589e-07
14  231.8       9.41089e-08
15  266.201    1.91486e-07
16

i tried using
Code:
1:  sed -i '/^$/d' file > newfile
2:  sed '/./!d'     file > newfile
3:  sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' file

all these three commands just delete blank line after line 16. but i want my output in the new file to be just

Code:
1   0              2.14014e-07
2   13.214      1.00771e-06
3   13.947      3.76252e-05
4   13.958      5.2692e-06
5   13.966     4.87701e-06
6   14.065     3.81149e-06
7   14.076     3.65411e-06
8   14.29       9.82566e-07
9   17.899     6.10872e-07
10  19.757     7.14666e-07
11  200.947    1.78718e-07
12  226.555    1.34066e-07
13  231.43     1.35589e-07
14  231.8       9.41089e-08
15  266.201    1.91486e-07

and not as the first one

how should i solve this.
# 2  
Old 09-09-2010
Hey bud, The line no. 16 is not deleted because it is not empty!
Now that you have managed to delete the 17th totally empty line, delete line number 16 (containing '16' at the beginning of the line) like this:

PHP Code:
sed '/^16/d' file newfile 
What it does is it deletes the line 'starting with' 16.

Let me know if that helped

(FYI - verified this on HP-UX)
# 3  
Old 09-09-2010
If you want to remove all lines after the 15th line this should work:
Code:
awk 'NR < 16' file > newfile

or have I missed something?
# 4  
Old 09-09-2010
I'm sorry, but the code dosent work. its not removing my last line. i still get the o/p as i got in first case

---------- Post updated at 11:22 AM ---------- Previous update was at 11:18 AM ----------

@ Franklin, the number changes everytime.

actually currently what i am doing is
1: opening the txt file, then going to the
Code:
15  266.201    1.91486e-07 ------> doing a backspace here so that it deletes the last empty line 16
16

# 5  
Old 09-09-2010
Code:
$
$
$ # Show data without line numbers on the left
$ cat f13
0              2.14014e-07
13.214      1.00771e-06
13.947      3.76252e-05
13.958      5.2692e-06
13.966     4.87701e-06
14.065     3.81149e-06
14.076     3.65411e-06
14.29       9.82566e-07
17.899     6.10872e-07
19.757     7.14666e-07
200.947    1.78718e-07
226.555    1.34066e-07
231.43     1.35589e-07
231.8       9.41089e-08
266.201    1.91486e-07
 
$
$ # Show data *with* lines numbers on the left
$ cat -n f13
     1  0              2.14014e-07
     2  13.214      1.00771e-06
     3  13.947      3.76252e-05
     4  13.958      5.2692e-06
     5  13.966     4.87701e-06
     6  14.065     3.81149e-06
     7  14.076     3.65411e-06
     8  14.29       9.82566e-07
     9  17.899     6.10872e-07
    10  19.757     7.14666e-07
    11  200.947    1.78718e-07
    12  226.555    1.34066e-07
    13  231.43     1.35589e-07
    14  231.8       9.41089e-08
    15  266.201    1.91486e-07
    16
$
$ # Remove the blank line at the end. Assume that the blank line *may have* whitespaces.
$ # Perform an inline replacement in the data file.
$
$ perl -pi.bak -e 's/^\s*$//' f13
$
$ # Check the modified data file.
$ cat -n f13
     1  0              2.14014e-07
     2  13.214      1.00771e-06
     3  13.947      3.76252e-05
     4  13.958      5.2692e-06
     5  13.966     4.87701e-06
     6  14.065     3.81149e-06
     7  14.076     3.65411e-06
     8  14.29       9.82566e-07
     9  17.899     6.10872e-07
    10  19.757     7.14666e-07
    11  200.947    1.78718e-07
    12  226.555    1.34066e-07
    13  231.43     1.35589e-07
    14  231.8       9.41089e-08
    15  266.201    1.91486e-07
$
$ # Check the backup data file generated by the Perl one-liner.
$ cat -n f13.bak
     1  0              2.14014e-07
     2  13.214      1.00771e-06
     3  13.947      3.76252e-05
     4  13.958      5.2692e-06
     5  13.966     4.87701e-06
     6  14.065     3.81149e-06
     7  14.076     3.65411e-06
     8  14.29       9.82566e-07
     9  17.899     6.10872e-07
    10  19.757     7.14666e-07
    11  200.947    1.78718e-07
    12  226.555    1.34066e-07
    13  231.43     1.35589e-07
    14  231.8       9.41089e-08
    15  266.201    1.91486e-07
    16
$
$
$

This should work if:

(a) there is more than one blank line at the end of the file => the one-liner removes all those blank lines at eof
(b) there is one or more than one blank line before the end of the file => the one-liner removes all those blank lines wherever they are before eof
(c) the lines refered to in (a) and (b) have zero or more whitespaces

tyler_durden

Last edited by durden_tyler; 09-09-2010 at 02:19 PM..
# 6  
Old 09-09-2010
Quote:
Originally Posted by shashi792
@ Franklin, the number changes everytime.

actually currently what i am doing is
1: opening the txt file, then going to the
Code:
15  266.201    1.91486e-07 ------> doing a backspace here so that it deletes the last empty line 16
16

Are you trying to delete the last newline character?
# 7  
Old 09-10-2010
@Franklin,
I did not understand your question.

I have these problem when i am streaming my text file to a C++ array.

rite now i am manually going to the line 15 and at the end of the line i'm using delete so that the last empty line gets deleted .
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

deleting the part of the file(overwrite) using start and end point

here is the contents of bigfile.sql CREATE TABLE `Table11` ( `id` int(11) NOT NULL , `entityName` enum('Lines','EndUsers') COLLATE utf8_unicode_ci NOT NULL, `parentAllianceMigrationProjectId` varchar(255) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=2000 DEFAULT CHARSET=utf8... (30 Replies)
Discussion started by: vivek d r
30 Replies

2. Shell Programming and Scripting

deleting blank lines ONLY at the end of the file

Hi Guys, I have a quetion which was already discussed in the forum, but for some reason all approches suggested fail for me. I have a file which have blank lines at the body of the text as well as at the end. I need to delete ONLY blank lines at the end. Unfortunatly the approach below does not... (5 Replies)
Discussion started by: aoussenko
5 Replies

3. UNIX for Dummies Questions & Answers

deleting word from this point to end of file in VI

Hi All i need to delete a recurring word from point "n" till end of the file. there are other words in this file so i cannot use `dG`, can anyone help me out? Kind regards Brian (4 Replies)
Discussion started by: brian112
4 Replies

4. Shell Programming and Scripting

deleting lines from file

We have a server that logs transactions to a file. I want to write a script that will delete the first 50 lines of the file daily without renameing the file or moving the file. (8 Replies)
Discussion started by: daveisme
8 Replies

5. UNIX for Advanced & Expert Users

Deleting lines from a file

How I can delete 100 lines anywhere in a file without opening a file and without renaming the file. (11 Replies)
Discussion started by: Nirgude07
11 Replies

6. UNIX for Dummies Questions & Answers

Deleting whole lines from a file

I have a file with 65 sets of 35 coordinates, and would like to isolate these coordinates so that I can easily copy the coordinates to another file. The problem is, I've got a 9 line header before each set of coordinates (so each set is 44 lines long). There are a zillion threads out there about... (3 Replies)
Discussion started by: red baron
3 Replies

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

8. UNIX Desktop Questions & Answers

Deleting Junks at the end of each line in a file

Is there any way to delete the Junk Characters(Invalid Characters like ^,',",),(,&,# etc.,) at the end of each record in a file? I want to do this using a single line script. Thanks to all in advance!!! (5 Replies)
Discussion started by: dave_nithis
5 Replies

9. Shell Programming and Scripting

Deleting lines in a file

How do I delete all the lines after the line containing text ***DISCLOSURES*** . I want to delete this line too. Thank you (2 Replies)
Discussion started by: reachsamir
2 Replies

10. Shell Programming and Scripting

Deleting end line spaces for along file

How can i clear all space characteres for a long file at the end of each line? (3 Replies)
Discussion started by: osymad
3 Replies
Login or Register to Ask a Question