Delete columns if a pattern met


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete columns if a pattern met
# 8  
Old 02-12-2013
OK!
so, here is the output of the file.with.patterns

HTML Code:
0000000   101 137 063 062 067 012 101 137 063 062 070 012                
           A   _   3   2   7  \n   A   _   3   2   8  \n                
0000014
and this is the output of the file.in

HTML Code:
0000000   116 141 155 145 011 103 150 162 011 120 157 163 151 164 151 157
           N   a   m   e  \t   C   h   r  \t   P   o   s   i   t   i   o
0000020   156 011 101 137 062 070 070 056 107 124 171 160 145 011 101 137
           n  \t   A   _   2   8   8   .   G   T   y   p   e  \t   A   _
0000040   062 070 070 056 130 011 101 137 062 070 070 056 131 011 101 137
           2   8   8   .   X  \t   A   _   2   8   8   .   Y  \t   A   _
0000060   062 070 071 056 107 124 171 160 145 011 101 137 062 070 071 056
           2   8   9   .   G   T   y   p   e  \t   A   _   2   8   9   .
0000100   130 011 101 137 062 070 071 056 131 011 101 137 062 071 060 056
           X  \t   A   _   2   8   9   .   Y  \t   A   _   2   9   0   .
0000120   107 124 171 160 145 011 101 137 062 071 060 056 130 011 101 137
           G   T   y   p   e  \t   A   _   2   9   0   .   X  \t   A   _
0000140   062 071 060 056 131 011 101 137 062 071 061 056 107 124 171 160
           2   9   0   .   Y  \t   A   _   2   9   1   .   G   T   y   p
0000160   145 011 101 137 062 071 061 056 130 011 101 137 062 071 061 056
           e  \t   A   _   2   9   1   .   X  \t   A   _   2   9   1   .
0000200   131 011 101 137 062 071 062 056 107 124 171 160 145 011 101 137
           Y  \t   A   _   2   9   2   .   G   T   y   p   e  \t   A   _
0000220   062 071 062 056 130 011 101 137 062 071 062 056 131 011 101 137
           2   9   2   .   X  \t   A   _   2   9   2   .   Y  \t   A   _
0000240   062 071 063 056 107 124 171 160 145 011 101 137 062 071 063 056
           2   9   3   .   G   T   y   p   e  \t   A   _   2   9   3   .
0000260   130 011 101 137 062 071 063 056 131 011 101 137 062 071 064 056
           X  \t   A   _   2   9   3   .   Y  \t   A   _   2   9   4   .
0000300   107 124 171 160 145 011 101 137 062 071 064 056 130 011 101 137
           G   T   y   p   e  \t   A   _   2   9   4   .   X  \t   A   _
0000320   062 071 064 056 131 011 101 137 062 071 065 056 107 124 171 160
           2   9   4   .   Y  \t   A   _   2   9   5   .   G   T   y   p
0000340   145 011 101 137 062 071 065 056 130 011 101 137 062 071 065 056
           e  \t   A   _   2   9   5   .   X  \t   A   _   2   9   5   .
0000360   131 011 101 137 062 071 067 056 107 124 171 160 145 011 101 137
           Y  \t   A   _   2   9   7   .   G   T   y   p   e  \t   A   _
0000400   062 071 067 056 130 011 101 137 062 071 067 056 131 011 101 137
           2   9   7   .   X  \t   A   _   2   9   7   .   Y  \t   A   _
sorry the output for the file.in was too big, hope this will be OK

Many thanks for your kind help!!!

---------- Post updated at 09:49 AM ---------- Previous update was at 09:47 AM ----------

don't know if that would help, but here is the end of the output for the file.in

HTML Code:
0227300   062 065 064 061 064 061 011 102 102 011 060 056 060 061 066 070
           2   5   4   1   4   1  \t   B   B  \t   0   .   0   1   6   8
0227320   060 066 064 061 011 060 056 063 067 061 062 067 067 067 015 012
           0   6   4   1  \t   0   .   3   7   1   2   7   7   7  \r  \n
0227340
Many thanks for your time!
# 9  
Old 02-12-2013
There is a carriage return character with a line feed in the last sample, so that means it is in DOS-format. You can convert it to Unix Format like so:
Code:
tr -d '\r' < file.in > file.out

This User Gave Thanks to Scrutinizer For This Post:
# 10  
Old 02-13-2013
yap! worked like a dream!

Many, many thanks for your kind help!
# 11  
Old 02-21-2013
python

Code:
import re
arr=[]
with open("b.txt","r") as f:
 for line in f:
  line=re.sub("\n","",line)
  arr.append(line)
str="|".join(arr)
id=[]
cnt=1
with open("a.txt","r") as f:
 for line in f:
  line=re.sub("\n","",line)
  items=line.split(" ")
  if cnt==1:
   for i in range(len(items)):
    if re.match(str,items[i],):
     id.append(i)
   cnt+=1
  print(items[0:min(id)],items[max(id)+1:])

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 delete all lines before a particular pattern when the pattern is defined in a variable?

I have a file Line 1 a Line 22 Line 33 Line 1 b Line 22 Line 1 c Line 4 Line 5 I want to delete all lines before last occurrence of a line which contains something which is defined in a variable. Say a variable var contains 'Line 1', then I need the following in the output. ... (21 Replies)
Discussion started by: Soham
21 Replies

2. Shell Programming and Scripting

If first pattern is found, look for second pattern. If second pattern not found, delete line

I had a spot of trouble coming up with a title, hopefully you'll understand once you read my problem... :) I have the output of an ldapsearch that looks like this: dn: cn=sam,ou=company,o=com uidNumber: 7174 gidNumber: 49563 homeDirectory: /home/sam loginshell: /bin/bash uid: sam... (2 Replies)
Discussion started by: samgoober
2 Replies

3. Shell Programming and Scripting

Delete if condition met in a column

i have a table like this: id, senderNumber, blacklist ----------------------------- 1 0835636326 Y 2 0373562343 Y 3 0273646833 Y and I want to delete automatically if a new inserted row on another table consist anything on senderNumber column above using a BASH Script I... (9 Replies)
Discussion started by: jazzyzha
9 Replies

4. UNIX for Dummies Questions & Answers

Sed: delete columns 7,15,16

An extension from an earlier question. Now need a sed script to delete columns 7,15 and 16 from an example txt below.. Again, thanks in advance. 98M-01.WAV,98M,01,00:00:49,01:07:36:00,"MIX",,"BOOM-MKH50",,,,,,,,,,"", 98L-01.WAV,98L,01,00:00:51,01:01:45:00,"MIX",,"BOOM-MKH50",,,,,,,,,,"", (7 Replies)
Discussion started by: Vrc2250
7 Replies

5. Shell Programming and Scripting

Replacing a pattern in different cases in different columns with a single pattern

Hi All I am having pipe seperated inputs like Adam|PeteR|Josh|PEter Nick|Rave|Simon|Paul Steve|smith|PETER|Josh Andrew|Daniel|StAlin|peter Rick|PETer|ADam|RAVE i want to repleace all the occurrence of peter (in any case pattern PeteR,PEter,PETER,peter,PETer) with Peter so that output... (5 Replies)
Discussion started by: sudeep.id
5 Replies

6. Shell Programming and Scripting

sed pattern to delete lines containing a pattern, except the first occurance

Hello sed gurus. I am using ksh on Sun and have a file created by concatenating several other files. All files contain header rows. I just need to keep the first occurrence and remove all other header rows. header for file 1111 2222 3333 header for file 1111 2222 3333 header for file... (8 Replies)
Discussion started by: gary_w
8 Replies

7. UNIX for Dummies Questions & Answers

How to delete all columns that start with a specific value

I have this space delimited large text file with more than 1,000,000+ columns and about 100 rows. I want to delete all the columns that start with NA such that: File before modification aa bb cc NA100 dd aa b1 c2 NA101 de File after modification aa bb cc dd aa b1 c2 de How would I... (3 Replies)
Discussion started by: evelibertine
3 Replies

8. UNIX for Dummies Questions & Answers

How to delete last 3 columns in a file

Hii I have a file which contains huge amounts of data.I just want to delete last 3 columns in the without changing its format.The file contains data as shown below PDE 2001 10 29 202148.60 38.92 24.20 33 4.8 MLATH .F. ....... PDE 2001 10 29 203423.57 38.88 24.41 33 3.7 MLATH... (3 Replies)
Discussion started by: reva
3 Replies

9. Shell Programming and Scripting

comment/delete a particular pattern starting from second line of the matching pattern

Hi, I have file 1.txt with following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433 ** ** ** In file 2.txt I have the following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433... (4 Replies)
Discussion started by: imas
4 Replies

10. UNIX for Dummies Questions & Answers

delete some columns

I've got a data file like the following format. 196004010000 196004020000 8192 24 ueaag 98.793 18.750 20 ---- - 36 23 9999 314.161773681641 196004020000 196004030000 8192 24 ueaag 98.793 18.750 20 ---- - 36 23 9999 314.71533203125 196004030000 196004040000 8192 24... (7 Replies)
Discussion started by: su_in99
7 Replies
Login or Register to Ask a Question