How to remove the last 3 lines from many files?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to remove the last 3 lines from many files?
# 1  
Old 06-27-2012
How to remove the last 3 lines from many files?

Hello,

I need to run a command or shell script that will remove the last 3 lines from every .js file that is under the directory /var/ww/vhost/

Can you please help ?

thank you.
# 2  
Old 06-27-2012
On Linux you could use something like this:

Code:
for f in /var/ww/vhost/*js; do 
  tac "$f" | 
    tail -n +4 |
      tac > "$f"_tmp_ && 
        mv -- "$f"_tmp_ "$f" 
done

Backup your data first!

Last edited by radoulov; 06-27-2012 at 07:02 AM..
# 3  
Old 06-27-2012
Code:
 
#take backup first
cp -rf /var/ww/vhost/ /tmp/mybackup
 
for i in /var/ww/vhost/*js
do 
        printf '$-2,$d\nw\nq\n' | ed -s "$i"
done

# 4  
Old 06-27-2012
Assuming that 9th field gives the name of file from ls command.

Code:
cd /var/ww/vhost
ls -ltr *.js| grep -v '^d' | awk '{print$9}' > fileList
while read line
do
        nbrOfLines=`wc -l $line | awk '{print $1}'`
        minusThree=`expr $nbrOfLines - 3`
        head -$minusThree $line > new$line
done < fileList

# 5  
Old 06-27-2012
radoulov thank you for the reply.
The js files are in random folders for example vhost/folder1/test.js
or vhost/folder213/my.js
etc etc
# 6  
Old 06-27-2012
Code:
#! /bin/bash

for x in `find vhost/ -type f -name "*.js"`
do
    total=$(wc -l < $x)
    from=$((total - 2))
    sed -i "$from,$total d" $x
done

# 7  
Old 06-27-2012
itkamaraj copying is not possible, the dirs contain other files , in total of 100GB +
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove lines from output in files using awk

I have two large files (~250GB) that I am trying to remove the where GT: 0/0 or 1/1 or 2/2 for both files. I was going to use a bash with the below awk, which I think will find each line but how do I remove that line is that condition is found? Thank you :). Input 20 60055 . A ... (4 Replies)
Discussion started by: cmccabe
4 Replies

2. Windows & DOS: Issues & Discussions

Remove duplicate lines from text files.

So, I have text files, one "fail.txt" And one "color.txt" I now want to use a command line (DOS) to remove ANY line that is PRESENT IN BOTH from each text file. Afterwards there shall be no duplicate lines. (1 Reply)
Discussion started by: pasc
1 Replies

3. Shell Programming and Scripting

Two files, remove lines from second based on lines in first

I have two files, a keepout.txt and a database.csv. They're unsorted, but could be sorted. keepout: user1 buser3 anuser19 notheruser27 database: user1,2343,"information about",field,blah,34 user2,4231,"mo info",etc,stuff,43 notheruser27,4344,"hiya",thing,more thing,423... (4 Replies)
Discussion started by: esoffron
4 Replies

4. Shell Programming and Scripting

Can you extract (remove) lines from log files?

I use "MineOS" (a linux distro with python scripts and web ui included for managing a Minecraft Server). The author of the scripts is currently having a problem with the Minecraft server log file being spammed with certain entries. He's working on clearing up the spam. But in the meantime, I'm... (8 Replies)
Discussion started by: nbsparks
8 Replies

5. UNIX for Dummies Questions & Answers

Remove duplicates lines in a files

I have a file called FILE cat FILE 11/11/2012 11/11/2012 12/11/2012 15/11/2012 need to remove the duplicates dates ( ie 11/11/2012 is present two times i need remove one duplicates date ) Need outputs like this 11/11/2012 12/11/2012 15/11/2012 I have tried using awk... (8 Replies)
Discussion started by: Venkatesh1
8 Replies

6. Shell Programming and Scripting

Compare one files with strings from another + remove lines

Have two files and want to compare the content of file1 with file2. When matched remove the line. awk 'NR==FNR {b; next} !(b in $0)' file1 file2file1 1. if match 2. removefile2 1. this line has to be removed if match 2. this line has a match, remove 3. this line has no match, no removingThe... (3 Replies)
Discussion started by: sdf
3 Replies

7. Shell Programming and Scripting

Remove the files that have less than certain lines

Hi all, I'm a newbie and I'm sorry if my question is too simple. I'm having problem to delete the files that have less than certain lines, say 16. #!/bin/tcsh set filen = `sh -c 'ls *csv 2> /dev/null'` foreach fil (${filen}) if ]; then rm -f ${filen} fi end exit ... (2 Replies)
Discussion started by: GoldenFire
2 Replies

8. Shell Programming and Scripting

compare files and then remove some lines

Hi everyone I have a dilemma and I'm hoping someone has an answer for me. I have two files: # cat masterfile line3 line4 line5 line6 line7 # cat tempfile line1 line2 line3 line4 I want to compare tempfile with masterfile. (3 Replies)
Discussion started by: soliberus
3 Replies

9. Shell Programming and Scripting

compare two files and to remove the matching lines on both the files

I have two files and need to compare the two files and to remove the matching lines from both the files (4 Replies)
Discussion started by: shellscripter
4 Replies

10. Shell Programming and Scripting

How to remove certain lines in multiple txt files?

Hi , I have this type of files:- BGH.28OCT2008.00000001.433155.001 BGH.28OCT2008.00000002.1552361.001 BGH.28OCT2008.00000003.1438355.001 BGH.28OCT2008.00000004.1562602.001 Inside them contains the below: 5Discounts 6P150 - Max Total Usage RM150|-221.00 P150 EPP - Talktime RM150... (5 Replies)
Discussion started by: olloong
5 Replies
Login or Register to Ask a Question