Problem with AWK and OFS


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Problem with AWK and OFS
# 1  
Old 10-20-2011
Problem with AWK and OFS

I have a file that looks like this:

Infile.seq
Quote:
"Contig 1" (1,314)
Contig Length: 314 bases
Average Length/Sequence: 257 bases
Total Sequence Length: 515 bases
Top Strand: 1 sequences
Bottom Strand: 1 sequences
Total: 2 sequences
FEATURES Location/Qualifiers
coverage_once 1..56
/Note="Only_once"
coverage_below 57..257
/Note="Below threshold"
coverage_once 258..314
/Note="Only_once"
^^
TTTGGATATGATGATGAACTGGTCACCTACAACGGCCCTGGTGGTATCGCAGTTACTCCGGATCCCACAAGCTGTCGTGGATATGGTGGCGGGGGCCC
I want to output the DNA sequence and add the filename as the identifier. The output file should look like this:

Quote:
>Infile.seq
TTTGGATATGATGATGAACTGGTCACCTACAACGGCCCTGGTGGTATCGCAGTTACTCCGGATCCCACAAGCTGTCGTGGATATGGTGGCGGGGGCCC
I am using the following code but I do not understand why the sequence is not in the output:

Code:
awk 'BEGIN { RS = "^^"; FS="\n"; OFS ="\n" }{print ">"FILENAME OFS}' Infile.seq

Any help will be greatly appreciated!

Last edited by Xterra; 10-20-2011 at 04:05 PM..
# 2  
Old 10-20-2011
Is that a complete file or just one record? Could you post a more representative sample if you have one?
Code:
nawk '/^\^\^/ {$0=">" FILENAME}1' myFile

# 3  
Old 10-20-2011
If sequence is always last line in the file:
Code:
awk 'END{print ">"FILENAME"\n"$0}' Infile.seq

This User Gave Thanks to bartus11 For This Post:
# 4  
Old 10-20-2011
bartus

As usual you are right on the money! For my education, why "END"?

vgersh99,

I am not getting the expected output with your code
Quote:
"Contig 1" (1,314)
Contig Length: 314 bases
Average Length/Sequence: 257 bases
Total Sequence Length: 515 bases
Top Strand: 1 sequences
Bottom Strand: 1 sequences
Total: 2 sequences
FEATURES Location/Qualifiers
coverage_once 1..56
/Note="Only_once"
coverage_below 57..257
/Note="Below threshold"
coverage_once 258..314
/Note="Only_once"
>Prueba.seq
TTTGGATATGATGATGAACTGGTCACCTACAACGGCCCTGGTGGTATCGCAGTTACTCCGGATCCCACAAGCTGTCGTGGATATGGTGGCGGGGGCCC
How can I modify it to get the sequence only?
# 5  
Old 10-20-2011
"END" is a clause that is executed after whole file is processed. All the variables that were created during processing of the file are accessible there, so when AWK reads last line into $0, it is still there when executing "END" Smilie
This User Gave Thanks to bartus11 For This Post:
# 6  
Old 10-20-2011
I see! But it wouldn't work with the following file, right?
Quote:
"Contig 1" (1,314)
Contig Length: 314 bases
Average Length/Sequence: 257 bases
Total Sequence Length: 515 bases
Top Strand: 1 sequences
Bottom Strand: 1 sequences
Total: 2 sequences
FEATURES Location/Qualifiers
coverage_once 1..56
/Note="Only_once"
coverage_below 57..257
/Note="Below threshold"
coverage_once 258..314
/Note="Only_once"
^^
TTTGGATATGATGATGAACTGGTCACCTACAACGGCCCTGGTGGTATCGCAGTTACTCCGGATCCCACAAGCTGTCGTGGATATGGTGGCGGGGGCCC
'Contig'
123
What would be the best way to look for the DNA sequence below "^^"?
# 7  
Old 10-20-2011
Code:
awk '/\^\^/{getline;print ">"FILENAME"\n"$0}' Infile.seq

This User Gave Thanks to bartus11 For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk - OFS printing duplicate. Why?

Why the following code printing duplicate records? bash-4.1$ cat rm1 c1 c2 c3 l1 2 3 4 l2 2 3 2 bash-4.1$ awk '{print $0} OFS = "\n"' rm1 c1 c2 c3 c1 c2 c3 l1 2 3 4 l1 2 3... (4 Replies)
Discussion started by: quincyjones
4 Replies

2. Shell Programming and Scripting

OFS does not apply to few records in awk

Hi , I am having a problem with my awk oneliner , which for some reason leaves the first two records Input File $ cat file1 A1:B1:C1:NoLimit M1:M2:M3:Limit A2:B2:C2,C3,C4,C5 A3:B3:C3,C4,C5,C6,C7Desired output A1,B1,C1,NoLimit M1,M2,M3,Limit A2,B2,C2 ,,,C3 ,,,C4 ,,,C5 A3,B3,C3... (5 Replies)
Discussion started by: chidori
5 Replies

3. Shell Programming and Scripting

OFS print awk

file: sasa|asasa|asasa|asas erer|Erer|rere|ererer Output needed : sasa:asasa:asasa:asas erer:Erer:rere:ererer Im getting output, when i use the $1,$2. awk -F'|' 'BEGIN{OFS=":";} {print $1,$2; }' file Output : sasa:asasa erer:Erer But when i need the whole column, i... (5 Replies)
Discussion started by: Ramesh M
5 Replies

4. UNIX for Dummies Questions & Answers

OFS in awk

Hello, I have an issue with adding commas as delimiters in this scenario: cat xtr3.rpl|head -5|awk 'BEGIN {OFS=","} {print $1,$2,$3,$4}' Produces this output: 00530083,0000000471,000000000000.00,000000000000.00 00530085,0000000471,000000000000.00,000000000000.00... (10 Replies)
Discussion started by: MIA651
10 Replies

5. Shell Programming and Scripting

Awk OFS issues

Hi, Could anyone tell me what Im doing wrong here any help will be much appreciated #!/bin/bash ls -ltr /export/home/tjmoore > /export/home/tjmoore/log100 awk -F " " /export/home/tjmoore/log100 'BEGIN {OFS="\t";} {print $1,$2,$3,$4,$5, $6,$7,$8,$9;}' > /export/home/tjmoore/log1001 I... (9 Replies)
Discussion started by: 02JayJay02
9 Replies

6. Shell Programming and Scripting

Awk OFS issues

Hi Im trying to tidy up the output of a who command when it writes to a log, everything I've tried doesnt seem to work though, any help would be massively appreciated. Im using the awk command to set the OFS as tab. #!/bin/bash who >> /export/home/tjmoore/logusers awk -F 'BEGIN... (3 Replies)
Discussion started by: 02JayJay02
3 Replies

7. Shell Programming and Scripting

Parsing XML in awk : OFS does not work as expected

Hi, I am trying to parse regular XML file where I have to reduce number of decimal points in some xml elements. I am using following AWK command to achive that : #!/bin/ksh EDITCMD='BEGIN { FS = ""; OFS=FS } { if ( $3 ~ "*\\.*" && length(substr($3,1+index($3,"."))) == 15 ) {... (4 Replies)
Discussion started by: martin.franek
4 Replies

8. Shell Programming and Scripting

AWK - OFS

Hi All, I have a comma seperated delimited file with 10 columns. I need to convert it into TAB seperated delimited file. awk -F"," '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$10}' a.txt >> b.txt how to use OFS to get the same output. I have tried by googling, but it... (5 Replies)
Discussion started by: Amit.Sagpariya
5 Replies

9. Shell Programming and Scripting

OFS in awk.

OFS is inbuild command in awk. I have a file file.txt abc : def : ghi jkl : mno: pqr stu : vwx :yzz code i used: awk -F ":" 'BEGIN {OFS="|"} {print $1,$2}' file.txt output: abc def jkl mno stu vwx but as i have used OFS="|" and i am expecting output as: abc | def jkl... (4 Replies)
Discussion started by: salil2012
4 Replies

10. UNIX for Dummies Questions & Answers

OFS in awk

Hi, I have these out put field seperator changed to "|" in my awk command, but it didn't give me the result. Can someone help me find out why? ======================================= /bin/awk 'BEGIN { OFS="|" } { print $0 }' list.tmp.$$ > listtmp.$$ =======================================... (1 Reply)
Discussion started by: whatsfordinner
1 Replies
Login or Register to Ask a Question