Awk Assistance


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk Assistance
# 1  
Old 11-14-2009
Awk Assistance

Hello A friend of mine posted this on another site that I follow. It is to advanced for me to figure out. If solved I will give credit where credit is due:
NOTE: Does not have to be AWK. Any Language will work,
Hi. I need a little assistant to write an awk script on linux that reads a file that looks something like this:

Code:
>description 1-blah blah blah
ASDFGHJKLMNPTRWQCVNMJKLOTYUQBEBDBJDBJDBJDBJDJJK
HJHJHDTYREWQDAXZCDBNDMMSKSKHGFSHSCVAIOPQTRE
>description 2-blah blah blah
SDFGHTYUIOPQNMZHJKGCDVBDKDJLDJLJDLDJLJLJLJDJDJJLD
YTRQWUATSHNZMKSLDOEBDLDOSLSPWGSSHABAHAHAKLKAA
HSTDFDDVDGDGD
etc

The script should first read the line of the description (or heading seperators):

Code:
>description 1-blah blah blah

and then reads the random sequence of letters below it:

Code:
ASDFGHJKLMNPTRWQCVNMJKLOTYUQBEBDBJDBJDBJDBJDJJK
HJHJHDTYREWQDAXZCDBNDMMSKSKHGFSHSCVAIOPQTRE

I need to write a script that reads the sequence of letters under each description heading and count +1 if the letter "J" is missing from the sequence. If the sequence has at least one J, then skip to the next sequence.

Hope you can understand this.
# 2  
Old 11-14-2009
after the heading, is each line one sequence or are multiple sequences on each line?
# 3  
Old 11-14-2009
I had a tough time understanding the question as well. However I will assume multiple.

Thanks for you reply. I truly appreciate your time.

Abacus
# 4  
Old 11-14-2009
Is sounds like J is the delimiter between sequences and he wants a count of the characters for each sequence. Is that your undestanding?
# 5  
Old 11-14-2009
Yes,

This sounds correct.

My friends first language is not english... As you can see.

Abacus
# 6  
Old 11-14-2009
I used perl to come up with this... hope it helps.

Code:
#!/usr/bin/perl

use strict;

my $seq_len;
my @a_seq;
my $seq;
my $hdr;

open SEQ_FILE, "<seq.dat"
  or die "can't open file: $!";

while(<SEQ_FILE>)
{
   chomp($_);

   if ( $_ =~ m/description/ )
   {
      print "$_\n";
   }
   else
   {
      @a_seq = split('J', $_);

      foreach $seq (@a_seq)
      {
         $seq_len = length($seq);
         print "$seq $seq_len\n";
      }
   }
}

close SEQ_FILE
  or die "can't close file: $!";

exit


Code:
>description 1-blah blah blah
ASDFGH 6
KLMNPTRWQCVNM 13
KLOTYUQBEBDB 12
DB 2
DB 2
DB 2
D 1
 0
K 1
H 1
H 1
HDTYREWQDAXZCDBNDMMSKSKHGFSHSCVAIOPQTRE 39
>description 2-blah blah blah
SDFGHTYUIOPQNMZH 16
KGCDVBDKD 9
LD 2
L 1
DLD 3
L 1
L 1
L 1
D 1
D 1
 0
LD 2
YTRQWUATSHNZMKSLDOEBDLDOSLSPWGSSHABAHAHAKLKAA 45
HSTDFDDVDGDGD 13

# 7  
Old 11-14-2009
Thank you so much for your effort and ability. I will show my friend and be sure to reference you for your time.

I will let you know the out come.

THanks,


Abacus

---------- Post updated at 03:30 PM ---------- Previous update was at 02:46 PM ----------

Well,

As I said @jsmithstl. Thank you so much. Here is what my friend replied:

For the sequence:
Code:
>description 1-blah blah blah
ASDFGHJKLMNPTRWQCVNMJKLOTYUQBEBDBJDBJDBJDBJDJJK
HJHJHDTYREWQDAXZCDBNDMMSKSKHGFSHSCVAIOPQTRE

We would NOT count that sequence because the letter J is present.

For the sequence:
Code:
>description 2-blah blah blah
SDFGHTYUIOPQNMZHPKGCDVBDKDPLDPLPDLDPLPLPLPDPDPPLD
YTRQWUATSHNZMKSLDOEBDLDOSLSPWGSSHABAHAHAKLKAA
HSTDFDDVDGDGD

We would count that sequence since there is no J present.

So the total number of sequences without a J is 1 (in this example),
in a file containing these two sequences.

Thanks,
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk assistance - Comparing 2 csv files

Hello all, I have searched high and low for a solution to this, many have come really close but not quite what I'm after. I have 2 files. One contains GUID's, for example: 8121E002-96FE-4C9C-BC5A-6AFF20DACECD 84468F30-F3B7-418B-81F0-0908E80792BF A second file, contains a path to the... (8 Replies)
Discussion started by: tirmUK
8 Replies

2. UNIX for Beginners Questions & Answers

Parsing output with awk - need assistance on exception

HI Folks - I have a business need to check weather or not there are "active" sessions within a particular application I interact with prior to running any automation. I have built a function that first exports all "sessions" from my respective application to a text file. The output is as... (2 Replies)
Discussion started by: SIMMS7400
2 Replies

3. Shell Programming and Scripting

Assistance required with awk and regular expressions

Hello there, I am trying to get my head around the section below of a script we use that incorporates AWK and Regular Expressions. { match($0,"The broker*");print $1,$2,$3 ":", substr($0, RSTART,RLENGTH)} I have a basic understanding of how match works, what I am struggling with is the... (2 Replies)
Discussion started by: jimbojames
2 Replies

4. Shell Programming and Scripting

Assistance with an awk code to split files but keep the header

---------- Post updated at 11:48 AM ---------- Previous update was at 11:46 AM ---------- Hello all I have an awk code that successfully creates separate text files based on the first six letters of the second field. What it doesn't do is preserve the header into each resulting file. ... (6 Replies)
Discussion started by: colecandoo
6 Replies

5. Shell Programming and Scripting

Awk - Script assistance on identifying non matching fields

Hoping for some assistance. my source file consists of: os, ip, username win7, 123.56.78, john win7, 123.56.78, paul win7, 10.1.1.1, john win7, 10.2.2.3, joe I've been trying to run a script that will only return ip and username where the IP address is the same and the username is... (3 Replies)
Discussion started by: tekvaio
3 Replies

6. UNIX for Dummies Questions & Answers

awk o/p assistance

Hi, I would like to know the awk command that gets the below o/p: File contents: Board1;9a;60;36;60.0;60;0;0.0 Board2;96;60;35;58.3;55;0;0.0 Board3;92;60;60;100.0;60;60;100.0 Used awk script: #!/bin/awk -f BEGIN { FS = ";"; printf (" Device | ... (1 Reply)
Discussion started by: Dendany83
1 Replies

7. Shell Programming and Scripting

awk, sed, perl assistance in outputting formatted file

Hello, Please advise. Scoured this site, as well as google for answers. However if you do not know what to search for, it's a bit hard to find answers. INPUT: ACTASS= 802 BASECOS= 279 COSNCHG= 3 CUSCOS= 52 UPLDCOS= 2 DESIRED OUTPUT: ACTASS=802 BASECOS=279 (13 Replies)
Discussion started by: abacus
13 Replies

8. Shell Programming and Scripting

AWK statement formatting assistance

I am writing a script that ssh's out to our various servers and extracts diskspace info to generate into a report. With the mix of servers linux/solairs 8-10/AIX the easiest way is to use df -k (though I much rather prefer df -h). I have pasted the relevant code: dfdata=`ssh -q -o... (1 Reply)
Discussion started by: rkruck
1 Replies

9. Shell Programming and Scripting

Script Assistance - Outputting to file with Awk

I'm trying to take a list of domains, find out the MX resolve it to IP then find out what the NS is and output the contents to a new file. The only problem i'm having is when checking the Ip or host of the MX i can only get it to print the column with the MX record and the results of the host... (1 Reply)
Discussion started by: spartan22
1 Replies

10. Shell Programming and Scripting

I need an assistance

I have a school project to create a shell program same as calendar i must create a txt file with celebrations with vi i know this but the problem is i don't know awk and grep. The object of object is to create a program who read a date an appear the celebration. Can you help me please !!!... (1 Reply)
Discussion started by: mytilini boy
1 Replies
Login or Register to Ask a Question