This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Manipulating Text in Linux

Dear all,

I am a beginner in Linux, hence I still have some small issues. For instance, I have a fasta file that looks like this:

>CLocus_3_Sample_35_Locus_57862_Allele_0 [**AD01**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC

>CLocus_3_Sample_36_Locus_40501_Allele_0 [**AD02**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC

>CLocus_3_Sample_36_Locus_40501_Allele_1 [**AD02**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTT

>CLocus_3_Sample_37_Locus_11583_Allele_0 [**AD03**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC
.
.
.

However, I need to change the only text inside the brackets, like this...

>CLocus_3_Sample_35_Locus_57862_Allele_0 [**AD_01.fq**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC

>CLocus_3_Sample_36_Locus_40501_Allele_0 [**AD_02.fq**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC

>CLocus_3_Sample_36_Locus_40501_Allele_1 [**AD_02.fq**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTT

>CLocus_3_Sample_37_Locus_11583_Allele_0 [**AD_03.fq**]
TGCAGGTGTCACATGACAGCGTCGGATCATCGTACACAGACTGAGGTGAAACACCGCAGACACGTGTGTTAAAGAGTCAGTGTTTCAGTTC
.
.
.

How can I use 'awk' to do so?

Thanks in advance, Felipe

sequence next-gen

Many thanks, Pierre,

but, how can I also add the underscore before the number?

Hello felipe_o_torquato!

We believe that this post does not fit the main topic of this site.

Not exactly bioinformatics. Please google a bit.

For this reason we have closed your question. This allows us to keep the site focused on the topics that the community can help with.

If you disagree please tell us why in a reply below, we'll be happy to talk about it.

Cheers!

1 answer

just use sed to replace'**]' with '.fq**]'

 sed 's/\*\*\]/\.fq\*\*\]/' in.fa > out.fa

edit for the underscore, one need to use a 'grouping' statement:

 sed 's/\([0-9]*\)\*\*\]/_\1\.fq\*\*\]/' in.fa > out.fa

Log in to answer this question.