Checking the last line and deleting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking the last line and deleting
# 1  
Old 12-13-2005
Checking the last line and deleting

Hi everyone,

I have a file. I have to search whether the last line is empty(blank line) or not. if it is a blank line, I have to delete it. I dont want to move it to a temp file and again to original file after deleting the last line because I am doing some more modification in that file. Just I want to check whether the last line is blank or not and delete it if it is blank. Pls help.
# 2  
Old 12-13-2005
Code:
sh-2.05b$ cat 1.txt
1
2
3
4

sh-2.05b$ wc -l < 1.txt
      5
sh-2.05b$ vi 1.txt 2> /dev/null <<EOF
> G
> :g:^ *$:d
> :wq
> EOF
sh-2.05b$ cat 1.txt
1
2
3
4
sh-2.05b$ wc -l < 1.txt
      4
sh-2.05b$


Last edited by vino; 12-13-2005 at 02:35 AM.. Reason: minor mistake
# 3  
Old 12-13-2005
If you are doing "more changes" in this file you may already run a sed script.

Code:
sed '$ {
            /^[<spc><tab>]*$/d
         }'

will only affect the last line and delete a line with only whitespace. Enter a literal tab and space character instead of <tab> and <spc>.

bakunin
# 4  
Old 12-13-2005
perl -pi -e "if(eof) { /^\s*$/ ; chomp ; }" filename

This will remove the last line of file only if that line is blank. It will directly edit the file without having to make a temp copy of the file.
Hope this helps
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Deleting double quoted string from a line when line number is variable

I need to remove double quoted strings from specific lines in a file. The specific line numbers are a variable. For example, line 5 of the file contains A B C "string" I want to remove "string". The following sed command works: sed '5 s/\"*\"//' $file If there are multiple... (2 Replies)
Discussion started by: rennatsb
2 Replies

2. Shell Programming and Scripting

Checking has for a command line argument

I would like to search and print a match of the user entered $ARGV. Im terrible with hashes and really dont know where to go from here. The example data file name location phone Bugs holeintheground 5551212 Woody holeinthetree 6661313 Jerry holeinthewall 7771414... (4 Replies)
Discussion started by: sumguy
4 Replies

3. Shell Programming and Scripting

Checking number of commas in each line.

Hi All, I am checking whether each line is having "n" number of commas or nor. In case not then I need to exit the process. I tried cat "$TEMP_FILE" | while read LINE do processing_line=`expr $processing_line + 1` no_of_delimiters=`echo "$LINE" | awk -F ',' '{ print NF }'` if ... (4 Replies)
Discussion started by: Anupam_Halder
4 Replies

4. UNIX for Dummies Questions & Answers

Deleting a pattern in UNIX without deleting the entire line

Hi I have a file: r58778.3|SOURCES={KEY=f665931a...,fw,221-705}|ERRORS={16_1:T,30_1:T,56_1:C,57_1:T,59_1:A,101_1:A,115:-,158_1:C,186_1:A,204:-,271_1:T,305:-,350_1:C,368_1:G,442_1:C,472_1:G,477_1:A}|SOURCE_1="Contig_1092402550638"(f665931a359e36cea0976db191ff60ff09cc816e) I want to retain... (15 Replies)
Discussion started by: Alyaa
15 Replies

5. Shell Programming and Scripting

Deleting new line characters

Hi, I have a weird requirement. I am having a file with 12fields in it and the end of the line for each record is "\n" (Just \n and no carriage returns) and the field delimiter is "|". Problem is I can have new line characters in any field in the data and these new line characters can even come... (11 Replies)
Discussion started by: ngkumar
11 Replies

6. UNIX for Dummies Questions & Answers

Deleting every other Line in VI

Hello, How would one delete every other two lines using VI? For example, I have the following 8 lines: Line1 Line2 Line3 Line4 Line5 Line6 Line7 Line8 And wish to only delete lines 3-4 and 7-8. Is there a certain pattern which would make this easier? Thank you, -Jahn (8 Replies)
Discussion started by: Jahn
8 Replies

7. Shell Programming and Scripting

Deleting Characters at specific position in a line if the line is certain length

I've got a file that would have lines similar to: 12345678 x.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 23456781 x.00 xx.00 xx.00 xx.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 34567812 x.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 45678123 x.00 xx.00 xx.00 xx.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 xx.00... (10 Replies)
Discussion started by: Cailet
10 Replies

8. Shell Programming and Scripting

Checking files size and deleting if bigger than x

Hello , I have to write a crontab line make a check on a file and, if bigger than 2Gb, to stop apache daemon, delete the file and restart apache . Someone have suggestions ? Thanks (2 Replies)
Discussion started by: gogol_bordello
2 Replies

9. UNIX for Advanced & Expert Users

Deleting First 10 letters in a line

Hi, Could any one of you let me know any simple Unix command for deleting first 10 letters of first line in unix? Eg: 123456789ABC --Input ABC--Output Thanks Sue (9 Replies)
Discussion started by: pyaranoid
9 Replies

10. UNIX for Dummies Questions & Answers

Checking for a file in file pattern before deleting it

Hi, I need a script where I have delete all the files of type abc*.* from the directory /lmn/opq (passed as parameter to script) But I need to check if there is file of type abc*.* existing in the directory or not before I use the rm abc*.* command. Thanks (1 Reply)
Discussion started by: dsrookie
1 Replies
Login or Register to Ask a Question