Concatenate strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Concatenate strings
# 1  
Old 07-23-2014
Concatenate strings

Hi,I'm trying to concatenate @example.com to each line of a file f1.txt. and push it into f2.txt. Here is the code i'm using.
Code:
for i in `cat /home/linux1/xxxxxxx/f1.txt`;
do
echo ${i}@example.com > /home/linux1/xxxxxx/f2.txt;
done

But above code only printing @example.com in f2.txt. what i need is for each line in f1.txt should be concatenated with @example.com.
Desired ouput:
Code:
a@example.com
b@example.com
c@example.com

Requesting help.

Last edited by Don Cragun; 07-23-2014 at 02:42 AM.. Reason: Change multi-line ICODE tags to CODE tags.
# 2  
Old 07-23-2014
You are not appending (>>) the file but overwriting (>) it every time. Possibly your input file contains blank line as last line or the last line contains spaces thats why its causing the variable of last iteration as null.


It is always safe to use while do .. done construct to read the file to deal with spaces and always use double quotes as a safer side.



Code:
while read line
do
 echo "${line}@example.com" >> /home/linux1/xxxxxx/f2.txt
done < /home/linux1/xxxxxxx/f1.txt

This User Gave Thanks to clx For This Post:
# 3  
Old 07-23-2014
hi Clx, thank you for ur response. I'll try with ur suggestion. however, while reading the file f1.txt (which is in column-format) i think i'll need to do line increment within while loop. Is the below code ok??
Code:
while read $i=`cat /home/linux1/xxxxxxx/f1.txt`
do 
echo "${i}@example.com" >> /home/linux1/xxxxxx/f2.txt
$i=$i+1
done


Last edited by Don Cragun; 07-23-2014 at 04:30 AM.. Reason: Change multi-line ICODE tags to CODE tags.
# 4  
Old 07-23-2014
You need to use while loop exactly as I have shown. The i variable is equal to line variable in my code. This contains each line of the file.

If you are still confused,

Code:
while read i
do
 echo "${i}@example.com" >> /home/linux1/xxxxxx/f2.txt
done < /home/linux1/xxxxxxx/f1.txt

Does that make sense?

Last edited by clx; 07-23-2014 at 04:59 AM..
# 5  
Old 07-23-2014
Hi CLX, i tried with above code and got the error message +1: command not foundDB1 whr DB1 is the content in f1.txt. actully it should have shown like this DB1@example.com
# 6  
Old 07-23-2014
Can you post the updated script?
# 7  
Old 07-24-2014
Hi CLX, here is the script.
Code:
#!/bin/sh
cd /home/linux1/xxxxxxx
while read i
do
echo "${i}@example.com >> /home/linux1/xxxxxxx/f2.txt
done < /home/linux1/xxxxxxx/f1.txt
exit 0

the previous error was due to $i=$i+1. But i've removed it.
However i'm not getting the result in f2.txt. all the lines in f2.txt are filled by @example.com
instead of something like DB1@example.com

Last edited by rbatte1; 07-24-2014 at 09:40 AM.. Reason: Changed main block in ICODE tags to just CODE tags and remived e-mail tag.
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Concatenate strings in a a for loop

hi guys, I have this question. I am creating an script to that read a text file(.ini) with the list of the patterns to find for example: EPMS_VO EMPS_PARTS Then it check if file have been delivered in a folder and process it with each pattern, but I am having problems concatenting the... (7 Replies)
Discussion started by: Danman
7 Replies

2. Programming

Concatenate two strings

Hello! Can anyone explain line 28 for me? I was thinking *a would be replaced by *b, but it actually appends *a to *b. I know it is related to pointer address, but could not figure it out by myself. Thanks a lot! 1 //Concatenate two strings 2 3 #include<stdio.h> 4 char *stradd (char *,... (5 Replies)
Discussion started by: yifangt
5 Replies

3. Shell Programming and Scripting

Concatenate text between patterns in individual strings

In any given file, wherever a certain data block exists I need to concatenate the values(text after each "=" sign) from that block. in that block. The block starts and ends with specific pattern, say BEGIN DS and END DS respectively. The block size may vary. A file will have multiple such blocks.... (12 Replies)
Discussion started by: Prev
12 Replies

4. Web Development

Concatenate Strings

hi..:) this is my sample part of my program.. $csv_output .= $row.",". $row.",". $row.",". $row.",". $row.",". ... (2 Replies)
Discussion started by: Jeneca
2 Replies

5. UNIX for Dummies Questions & Answers

concatenate strings

if i use echo "ravi" echo "sankar" it showing output ravi sankar but i want output as ravi sankar remember sankar should be in another echo statement only (2 Replies)
Discussion started by: shankr3
2 Replies

6. Shell Programming and Scripting

delete repeated strings (tags) in a line and concatenate corresponding words

Hello friends! Each line of my input file has this format: word<TAB>tag1<blankspace>lemma<TAB>tag2<blankspace>lemma ... <TAB>tag3<blankspace>lemma Of this file I need to eliminate all the repeated tags (of the same word) in a line, as in the example here below, but conserving both (all) the... (2 Replies)
Discussion started by: mjomba
2 Replies

7. UNIX for Dummies Questions & Answers

Concatenate Strings

Hi Friends, I have a requirement I need to concatenate the below two strings. String 1 = /@jobid_at_ String 2 = value stored in ORACLE_SID String 3 = string1 concatenated with String 2. Please let me know how should i do it in UNIX. Thanks, (2 Replies)
Discussion started by: diva_thilak
2 Replies

8. Shell Programming and Scripting

How to concatenate two strings or several strings into one string in B-shell?

like connect "summer" and "winter" to "summerwinter"? Can anybody help me? thanks a lot. (2 Replies)
Discussion started by: fontana
2 Replies
Login or Register to Ask a Question