Visit Our UNIX and Linux User Community


replace


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers replace
# 1  
Old 07-22-2009
replace

my file (tj.txt) contains:

login pwd
1 123
2 234
3 345
4 456
5 567

i have another file (password.txt) has the following lines:
<RDID><![CDATA[login]]></RDID>
<user><![CDATA[login]]></user>
<password><![CDATA[PASSWORD]]></password>

currently, i do this to change pwd.txt:

cat tj.txt | awk '{print $1}' > login.txt
cat tj.txt | awk '{print $2}' > pwd.txt
cat login.txt | while read id
do
sed -e 's/login/'${id}'/g' > login.txt-1
cat pwd.txt | while read pwd
do
sed -e 's/PASSWORD/'${pwd}'/g login.txt-1 > login.txt.f
done
done

can i just read colum 1 from tj.txt to replace login and colum 2 from tj.txt to replace PASSWORD

all said and one, my file will look like this:

<RDID><![CDATA[1]]></RDID>
<user><![CDATA[1]]></user>
<password><![CDATA[123]]></password>
# 2  
Old 07-22-2009
Quote:
Originally Posted by tjmannonline
...
can i just read colum 1 from tj.txt to replace login and colum 2 from tj.txt to replace PASSWORD

all said and one, my file will look like this:

<RDID><![CDATA[1]]></RDID>
<user><![CDATA[1]]></user>
<password><![CDATA[123]]></password>
Maybe something like this ?

Code:
$
$ # check the contents of the file tj.txt
$
$ cat tj.txt
login pwd
1 123
2 234
3 345
4 456
5 567
$
$ # now run the awk script that does the transformation
$
$ awk '!/^login/ { printf("<RDID><![CDATA[%s]]></RDID>\n",$1)
>                  printf("<user><![CDATA[%s]]></user>\n",$1)
>                  printf("<password><![CDATA[%s]]></password>\n\n",$2)
>                }' tj.txt
<RDID><![CDATA[1]]></RDID>
<user><![CDATA[1]]></user>
<password><![CDATA[123]]></password>
 
<RDID><![CDATA[2]]></RDID>
<user><![CDATA[2]]></user>
<password><![CDATA[234]]></password>
 
<RDID><![CDATA[3]]></RDID>
<user><![CDATA[3]]></user>
<password><![CDATA[345]]></password>
 
<RDID><![CDATA[4]]></RDID>
<user><![CDATA[4]]></user>
<password><![CDATA[456]]></password>
 
<RDID><![CDATA[5]]></RDID>
<user><![CDATA[5]]></user>
<password><![CDATA[567]]></password>
$
$

You may redirect the output of the awk script to a file.

tyler_durden
# 3  
Old 07-22-2009
Hi, I am bit confused with your output. Yout inputfile tj.txt has 5 records. But the output you wanted just have 1 entry.

The below code will read read colum 1 from tj.txt to replace login and colum 2 from tj.txt to replace PASSWORD. See if this helps.

Code:
 
while read record
do
log=`echo $record | cut -d " " -f1`
pwd=`echo $record | cut -d " " -f2`
sed -e "s/login/$log/g" -e "s/PASSWORD/$pwd/g" password.txt >>output
done <tj.txt

# 4  
Old 07-22-2009
thank you. both worked.

sorry, i did not mention mult. outputs.
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #964
Difficulty: Medium
HTML4 became a W3C Recommendation in 1994.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk script to extract a column, replace one of the header and replace year(from ddmmyy to yyyy)

I have a csv which has lot of columns . I was looking for an awk script which would extract a column twice. for the first occurance the header and data needs to be intact but for the second occurance i want to replace the header name since it a duplicate and extract year value which is in ddmmyy... (10 Replies)
Discussion started by: Kunalcurious
10 Replies

2. UNIX for Dummies Questions & Answers

How can I replace the lines that start with a star and replace it with numbers start from 1?

I need to replace the (*) in the fist of a list with numbers using sed for example > this file contain a list * linux * computers * labs * questions to >>>> this file contain a list 1. linux 2. computers 3. labs 4. questions (7 Replies)
Discussion started by: aalbazie
7 Replies

3. Shell Programming and Scripting

Replace dashes positions 351-357 & 024-043 with 0 & replace " " if exis with 04 at position 381-382

I need to replace dashes (i.e. -) if present from positions 351-357 with zero (i.e. 0), I also need to replace dash (i.e “-“) if present between position 024-043 with zero (i.e. 0) & I replace " " (i.e. 2 space characters) if present at position 381-382 with "04". Total length of record is 413.... (11 Replies)
Discussion started by: lancesunny
11 Replies

4. Shell Programming and Scripting

How to replace

Here is my file content age=12 age=34 age=54 age=23 Hello world. This is the age result I am getting. To day date is 23-02-2010. From the above content I have to replace all the values after 'age=*' to age=24. How to do it. (1 Reply)
Discussion started by: brahma
1 Replies

5. Shell Programming and Scripting

awk - replace number of string length from search and replace for a serialized array

Hello, I really would appreciate some help with a bash script for some string manipulation on an SQL dump: I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump. This is quite easy with sed: sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies

6. Shell Programming and Scripting

Replace Help

Hi, djfksdjk)))) kmmm jfdfjk)))) I want to replace the first ')' after kmmm with #. The output would be djfksdjk)))) exists jfdfjk#))) Can anyone help on this? (3 Replies)
Discussion started by: javeed7
3 Replies

7. Shell Programming and Scripting

replace

hi i have input file in this format E102|0|1-23-1994|0|12-5-1994|E003|A|10450|charan,devupalli|5000 how to convert this into outfile E102,0,1-23-1994,0,12-5-1994,E003,A,10450,charan,devupalli,5000 i wann the output in excel sheet.........that is why i am converting into csv.. but i have... (6 Replies)
Discussion started by: charandevu
6 Replies

8. Shell Programming and Scripting

replace last / by |

Hi: I want to write a Kshell script which will replace last / by |. eg: /home/apps/test/document should be replaced as /home/apps/test|document. The length of the string is not constant. Thanks, Ash (6 Replies)
Discussion started by: naikaa
6 Replies

9. Shell Programming and Scripting

How to replace into Vi

Ravi . Pawan 19.23 sanjeeva . I want to replace '.' into 'NULL' not the dot between 19.23 .. only single dots to NULL how to do replacement after opening file in Vi (5 Replies)
Discussion started by: ravi.sadani19
5 Replies

10. UNIX for Dummies Questions & Answers

How to replace ??

Hi all, I have a file with the following data. E01011U, ,E11, , , ,0 E03012U, ,E14, , , ,0 E02013U, ,E25, , , ,0 I want to change it to ('E01-01-1-U','E11' ); ('E03-01-2-U','E14' ); ('E02-01-3-U','E25' ); Please let me know about it .Thanks in advance. (10 Replies)
Discussion started by: preethgideon
10 Replies

Featured Tech Videos