Find & Replace identifiers using a conversion table


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Find & Replace identifiers using a conversion table
# 15  
Old 02-23-2012
input.tab:
Code:
Location	Item ID
rack1	12; 35
rack2	1235

table.tab:
Code:
From	To
12	AAA_alpha
35	MKIUY_gamma
1235	NJU_zulu

Code I used:
Code:
while read a b; do sed "s/\<$a\>/$b/g" input.tab > output.tab; mv output.tab input.tab; done < table.tab

I obtained:
Code:
Location	Item ID
rack1	12; 35
rack2	1235

Instead of:
Code:
Location	Item ID
rack1	AAA_alpha; MKIUY_gamma
rack2	NJU_zulu

[/CODE]
# 16  
Old 02-23-2012
Code:
$ a=12
$ b=AA
$ sed "s/\<$a\>/$b/g" test.txt
123456
AA
34

---------- Post updated at 02:55 PM ---------- Previous update was at 02:52 PM ----------

working fine for me

Code:
 
$ while read a b; do sed "s/\<$a\>/$b/g" input.tab > output.tab; mv output.tab input.tab; done < table.tab

$ cat input.tab 
Location        Item ID
rack1   AAA_alpha; MKIUY_gamma
rack35  NJU_zulu

# 17  
Old 02-23-2012
I triple check, it doesn't work for sure!
Which version of sed, and OSX do you use?
How to know which version of sed I am using?

---------- Post updated at 09:26 PM ---------- Previous update was at 05:02 AM ----------

Checked again, it doesn't work !

Is there any way by using awk instead of sed?

input.tab:
Code:
Location	Item ID
rack1	12; 35
rack2	1235

table.tab:
Code:
From	To
12	AAA_alpha
35	MKIUY_gamma
1235	NJU_zulu


And do something like that:
Code:
awk 'NR==FNR{A[$1]=$2;next}{print $2,A[$2]}' input.tab table.tab

(This command leaves input.tab unchanged)

To obtain:
Code:
Location	Item ID
rack1	AAA_alpha; MKIUY_gamma
rack2	NJU_zulu

# 18  
Old 02-24-2012
In the MAC OSX, can you try the below sed

Code:
 
sed "s/[[:<:]]$a[[:>:]]/$b/g"

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

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find & Replace with same case letters

I have text with upper and lower case words. I want to find something and replace it with something new. But it should match the case - Meaning - it should replace old upper cased word with NEW upper case word and lower with lower. example: this text is very simple TEXT. now I want to replace... (5 Replies)
Discussion started by: grep_me
5 Replies

2. UNIX for Dummies Questions & Answers

Find & Replace

Hi I am looking to rename the contents of this dir, each one with a new timestamp, interval of a second for each so it the existing format is on lhs and what I want is to rename each of these to what is on rhs..hopefully it nake sense CDR.20060505.150006.gb CDR.20121211.191500.gb... (3 Replies)
Discussion started by: rob171171
3 Replies

3. Shell Programming and Scripting

Find and replace variables using a csv table

I have a flat file (template) where I want to replace variables based upon a value in another file (csv). The variables in the template are named %VAR_X_z% The values are in the csv file and X is field 0 of each line and y field 1 and up. Example of the csv: Badidas, 13.00, 12.00, 11.00,... (8 Replies)
Discussion started by: biscayne
8 Replies

4. Shell Programming and Scripting

Find & replace --> create a new file

Hi All, I have a unix shell script file as below. My task is a)to replace 248 to 350 and need to create a new file as BW3_350.sh b)to replace 248 to 380 and need to create a new file as BW3_380.sh c)to replace 248 to 320 and need to create a new file as BW3_320.sh there is no... (6 Replies)
Discussion started by: karthi_mrkg
6 Replies

5. UNIX for Dummies Questions & Answers

converting unique identifiers in a column using conversion file

Hello, I often have this problem: I have a file with a column of unique identifiers e.g. file1 below has an id column and data column/columns with p rows: cat data1 dog data2 cow data3 . . . elephant datap-1 horse datap and I have a conversion file,file2, with n<p rows... (4 Replies)
Discussion started by: peanuts48
4 Replies

6. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

7. UNIX for Dummies Questions & Answers

Find, Replace & Edit a string?

Is this something SED would be used for or can AWK do it? I have a string that I would like to chop bits out of and re-arrange some of the rest. Basically I want to change this: <log4j:event logger="webserver" timestamp="1240110840109" time="Sun Apr 19 04:14:00 BST 2009" level="INFO"... (4 Replies)
Discussion started by: Sepia
4 Replies

8. Shell Programming and Scripting

find & incremental replace?

Looking for a way using sed/awk/perl to replace port numbers in a file with an incrementing number. The original file looks like... Host cmg-iqdrw3p4 LocalForward *:9043 localhost:9043 Host cmg-iqdro3p3a LocalForward *:10000 localhost:10000 Host cmg-iqdro3p3b LocalForward... (2 Replies)
Discussion started by: treadwm
2 Replies

9. UNIX for Dummies Questions & Answers

improving my script (find & replace)

Hi all, I have a script that scan files, find old templet and replace it with new one. #!/bin/ksh file_name=$1 old_templet=$2 new_templet=$3 # Loop through every file like this for file in file_name do cat $file | sed "s/old_templet/new_templet/g" > $file.new #do a global searce and... (8 Replies)
Discussion started by: amir_yosha
8 Replies

10. Shell Programming and Scripting

Find & Replace

I get a text file with 70+ columns (seperated by Tab) and about 10000 rows. The 58th Column is all numbers. But sometimes 58th columns has "/xxx=##" after the numeric data. I want to truncate this string using the script. Any Ideas...:confused: (3 Replies)
Discussion started by: gagansharma
3 Replies
Login or Register to Ask a Question