Delete 26 consecutive lines in a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Delete 26 consecutive lines in a file
# 1  
Old 05-23-2013
Delete 26 consecutive lines in a file

I have a text file that is about 90,000 lines long. How would I delete lines 64-89, 152-177, 240-265, 328-353... etc? The sections I would like to delete are 26 lines long and the number of lines between the sections I would like to delete is 62 lines. Thanks very much in advance.
# 2  
Old 05-23-2013
Suggestion - there must be an observable pattern to this, not just line numbers. We would have to have a huge list of line numbers, or try to calculate offsets to attempt what you ask as it stands.

Using patterns allows for things like, 'Oops, the first line to delete is not 62 but 63 lines from the top'. In other words, you applied some kind of logic to your data. To do this in a reasonable way we need to understand the layout and logic behind it.

Alternatively, you need to generate a file that is made of ranges of line numbers and verify there are no Oops moments in there. Otherwise it is likely this exercise will turn your file into hash. You don't want to have to verify 50000 lines by hand. And if verification is simple - that means there is a pattern we can use.
# 3  
Old 05-23-2013
Quote:
Originally Posted by MDeBiasse
How would I delete lines 64-89, 152-177, 240-265, 328-353... etc?
This is one way:
Code:
$ wc -l 90000_records.txt
90000 90000_records.txt

$ sed '64,89d;152,177d;240,265d;328,353d;' 90000_records.txt > new

$ wc -l new
89896 new

# 4  
Old 05-24-2013
Thanks for the reply Jim. I understand what you mean about needing a pattern. Ive edited my file a bit. Now the first line in the section I want to delete always begins with the term "New_matrix." Would it be possible to search the file for lines that begin with New_matrix and then delete it and the 24 lines that follow it?
# 5  
Old 05-24-2013
The way I interpret the description of the problem, the 1st line to be deleted is line 64. Then there is a loop where 26 lines are deleted and 62 lines are copied until we run out of input lines. The following does this:
Code:
#!/bin/ksh
CopyCount=62    # # of lines to copy
FirstSkip=64    # Line # of 1st line to skip
SkipCount=26    # # of lines to skip
awk -v fs="$FirstSkip" -v cc="$CopyCount" -v sc="$SkipCount" '
BEGIN { i = fs - 1;j = sc }
i     { i--;print;next }
j     { j--;next }
      { i = cc - 1;j = sc;print }' file

I use the Korn shell, but this will work with any shell that recognizes basic Bourne shell syntax. If you are using a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of awk.
This User Gave Thanks to Don Cragun For This Post:
# 6  
Old 05-24-2013
I think Jim did not want you to edit the file. Instead you should look for existing patterns: an empty line, a different indentation, ...
It is unusual that a file has fixed line numbers.
# 7  
Old 05-24-2013
Thank you Don. That worked perfectly! Thank you all who replied.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete all CONSECUTIVE text lines from file shell scripting

Hi I have a text file like below. THe content of the text will vary. Entire text file have four consecutive lines followed with blank line. I want to delete the occurrence of the two consicutive lines in the text file. I don't have pattern to match and delete. Just i need to delete all... (5 Replies)
Discussion started by: RJSKR28
5 Replies

2. Shell Programming and Scripting

Grep 2 consecutive lines and replace the second line in a file

I have a file lake this cat ex1.txt </DISCOUNTS> <B2B_SPECIFICATION elem="0"> <B2B_SPECIFICATION elem="0"> <DESCR>Netti 2 </DESCR> <NUMBER>D02021507505</NUMBER> </B2B_SPECIFICATION> <B2B_SPECIFICATION elem="1"> <DESCR>Puhepaketti</DESCR>... (2 Replies)
Discussion started by: Dhoni
2 Replies

3. Shell Programming and Scripting

How to compare the values of a column in awk in a same file and consecutive lines..

I would like to compare the values of 2nd column of consecutive lines of same file in such a way so that if the difference between first value and second value is more than 100 it should print complete line else ignore line. Input File ========== PDB 2500 RTDB 123 RTDB-EAGLE 122 VSCCP 2565... (4 Replies)
Discussion started by: manuswami
4 Replies

4. Shell Programming and Scripting

Scan a file in realtime and execute certain commands on encountering 5 consecutive identical lines

Mysql log has something like below: I need a bash shell script that will do the following: 1) The script will scan the mysql.log file constantly in real time (something like tail -F mysql.log) 2) If it encounters 5 consecutive identical lines then it would invoke some commands (say... (4 Replies)
Discussion started by: proactiveaditya
4 Replies

5. Shell Programming and Scripting

Removing consecutive lines in a file

We have very large transaction logs that have transactions which start with a line that starts with 'Begin :' and ends with a line that starts with 'End :'. For most transactions there is valid data between those two lines. I am trying to get rid of lines that look like this: Begin :... (11 Replies)
Discussion started by: deneuve01
11 Replies

6. Shell Programming and Scripting

how to delete two consecutive lines from the file

Hi guys I am deleting a unique line from the file and also need to remove the line above it which is NOT unique and servers as a record separator. Here is an example: # 101 803E 823F 8240 # 102 755f 4F2A 4F2B # 290 747D 0926 0927 # 999 8123 813E ... (5 Replies)
Discussion started by: aoussenko
5 Replies

7. Shell Programming and Scripting

Find time difference between two consecutive lines in same file.

Hello I have a file in following format: IV 08:09:07 NM 08:12:01 IC 08:12:00 MN 08:14:20 NM 08:14:15 I need a script to compare time on each line with previous line and show the inconsecutive line. Ex.: 08:12:00 08:14:15 A better way... (6 Replies)
Discussion started by: vilibit
6 Replies

8. Shell Programming and Scripting

merging of 2 consecutive lines in a file for a specific pattern

Hi , I'm looking for a way to merge two lines only for a given pattern / condition. Input : abcd/dad + -49.201 2.09 -49.5 34 ewrew rewtre * fdsgfds/dsgf/sdfdsfasdd + -4.30 0.62 -49.5 45 sdfdsf cvbbv * sdfds/retret/asdsaddsa + ... (1 Reply)
Discussion started by: novice_man
1 Replies

9. Shell Programming and Scripting

search a word and delete consecutive lines below it

Hi all coders, I need a help to process some data. I have this file, 3 09/21/08 03:32:07 started undef mino Oracle nmx004.wwdc.numonyx.co m Message Text : The Oracle session with the PID 1103 has a CPU time consuming of 999.00... (3 Replies)
Discussion started by: vikas027
3 Replies

10. UNIX for Dummies Questions & Answers

Cutting n consecutive lines from a file...

Hi, I have this problem of separating 10 consecutive lines from a file, say starting from 21 to 30... I have used a filter like this.. head -n 30 myfile | tail -n 10 Is there a simpler way than this? (2 Replies)
Discussion started by: Vishnu
2 Replies
Login or Register to Ask a Question