Add strings from one file at the end of specific lines in text file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Add strings from one file at the end of specific lines in text file
# 1  
Old 10-24-2013
Add strings from one file at the end of specific lines in text file

Hello All,

this is my first post so I don't know if I am doing this right.

I would like to append entries from a series of strings (contained in a text file) consecutively at the end of specifically labeled lines in another file.

As an example:

- the file that contains the values to be added (cluster_sizes.txt):

Code:
;size=3
;size=142
;size=21

- the file these entries shall be added to at the end of each line that begins with ">" (rep_sequences.fasta):

Code:
>seq_3453 source=sludge
AGCATTAGATCCATAGACTACAG
>seq_92 source=water 
CAGGATACAGTACACAGTACAGTACA
>seq_24 source=filter
AGTGACAGTACCCCGTAGACAGTA

so the output should look like:

Code:
>seq_3453 source=sludge;size=3
AGCATTAGATCCATAGACTACAG
>seq_92 source=water;size=142
CAGGATACAGTACACAGTACAGTACA
>seq_24 source=filter;size=21
AGTGACAGTACCCCGTAGACAGTA

is this possible with awk or some similar language/ command? I have been searching on the net but don't really know how to get towards the needed information. I am a newbie to this world of text manipulation.

Any help is greatly welcome, thanks in advance!

Gus
# 2  
Old 10-24-2013
An awk approach:
Code:
awk 'NR==FNR{A[++c]=$0;next}/^>/{$0=$0 A[++j]}1' cluster_sizes.txt rep_sequences.fasta

This User Gave Thanks to Yoda For This Post:
# 3  
Old 10-24-2013
Try:
Code:
nawk 'NR==FNR{a[NR]=$0;next}/^>/{$0=$0""a[++i]}1' cluster_sizes.txt rep_sequences.fasta

This User Gave Thanks to bartus11 For This Post:
# 4  
Old 10-24-2013
Wow, that was incredibly fast and it works like a charm. Thank you so much! The real Yoda you certainly are.

And another answer! Thank you Bartus!

Both solutions do exactly what I was looking for, thanks a ton!

edit: I'll take this as motivation to learn this language, I had no idea it was so powerful.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Search a file for certain strings and add them to the end of certain lines

I have a log file which lists groups and users in the following format GROUP1 user1 user2 user3 GROUP2 user4 user5 user6 GROUP3 user7 user8 I need to change the format to: user1|GROUP1 user2|GROUP1 user3|GROUP1 user4|GROUP2 (3 Replies)
Discussion started by: Angela S
3 Replies

2. Windows & DOS: Issues & Discussions

2 Questions: replace text in txt file, add text to end of txt file

so... Lets assume I have a text file. The text file contains multiple "#" symbols. I want to replace all thos "#"s with a STRING using DOS/Batch I want to add a certain TEXT to the end of each line. How can I do this WITHOUT aid of sed, grep or anything linux related ? (1 Reply)
Discussion started by: pasc
1 Replies

3. Shell Programming and Scripting

Adding text to the end of the specific line in a file(only to the first occurrence of it)

Hi, I want to add a text to the end of the specific line in a file. Now my file looks like this: 999 111 222 333 111 444 I want to add the string " 555" to the end of the first line contaning 111. Moreover, I want to insert a newline after this line containg the "000" string. The... (8 Replies)
Discussion started by: wenclu
8 Replies

4. UNIX for Dummies Questions & Answers

Removing trailing lines at the end of a text file

How do you remove trailing empty lines at the end of a text file? Thanks! (3 Replies)
Discussion started by: evelibertine
3 Replies

5. Shell Programming and Scripting

while loop to add text to the end of a file

Hi all, I've got 2 files. File 1 has a list say a b c d e f File 2 got start= What I want is to create File 3 which look like this start=a,b,c,d,e,f So is it possible to loop throught File1 to echo it into File3 in one line? (3 Replies)
Discussion started by: stinkefisch
3 Replies

6. Shell Programming and Scripting

print string at the end of lines in text file

hello, I go text file like this E:/DDD/Dyndede/wwww E:/DDD/sss.com/ffffg/fff E:/DDD/vvvvvv/dd E:/DDD/sss.com/bbbbbb E:/DDD/sss.com/nnnn/xxI want to print /alpha.jpg at the end of every lines like that E:/DDD/Dyndede/wwww/alpha.jpg E:/DDD/sss.com/ffffg/fff/alpha.jpg... (8 Replies)
Discussion started by: davidkhan
8 Replies

7. Shell Programming and Scripting

[bash help]Adding multiple lines of text into a specific spot into a text file

I am attempting to insert multiple lines of text into a specific place in a text file based on the lines above or below it. For example, Here is a portion of a zone file. IN NS ns1.domain.tld. IN NS ns2.domain.tld. IN ... (2 Replies)
Discussion started by: cdn_humbucker
2 Replies

8. Shell Programming and Scripting

add text to end of text file

Hi, I assume there is a simple solution, but as usual i can't find it! How can i add a line of text to the end of a text file on a new line? i.e file.txt ________________ this is my text file ________________ file.txt ________________ this is my text file WITH A NEW LINE... (6 Replies)
Discussion started by: leeRoberts2007
6 Replies

9. HP-UX

Add a column at the end of all the lines in a file

Hi Guys, :D I am very much new to UNIX. I dont have much basics of coding in UNIX, so please help me out of thi ssituation. I have a file say for ex: ABC.dtd and it contains "|" delimited data as test1|testing|test3|moving past1|runing|test4|going I need to add a column at the end... (6 Replies)
Discussion started by: ruthless
6 Replies

10. Programming

Delete specific lines in a text file

Hi, experts, I would like to create a function that can calculate the total number of lines in a saved text file and delete specific lines in that particular file (I only want the last few lines). Hav anybody have the experience and giv me a hand in this? (9 Replies)
Discussion started by: dniz
9 Replies
Login or Register to Ask a Question