Find and replace in a file from another file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and replace in a file from another file
# 1  
Old 10-24-2017
Find and replace in a file from another file

Hello,
I am writing a phonetic converter for French from written French to IPA. French has the convention of putting an apostrophe and joining 2 words if the first word ends in an e.
Code:
l'homme
d'air
s'est

Loading all such words in my dictionary just over loads the database.
Apart from this the Engine which I have written does not convert words followed by punctuation markers.
What I need is an awk or perl script which can act as a preprocessor and preprocess the data separating the apostrophe by a space.
Code:
l' becomes l[space]'
d' becomes d[space]'

I am giving below a sample rule file which is in UTF8 which needs to handle all such cases. The convention is that the lefthand side string is converted to a righthand side string with
Code:
=

as the delimiter
Code:
'= ' 
.= . 
,= ,
"= " 
;= ; 
:= : 
!= ! 
?= ? 
(= ( 
)= ) 
l'=l 
-= -

Some samples for testing are given below
Code:
s'est
l'air
d'homme
l'issue
bleu-blanc-rouge
(SDF)
a-t-il?

Many thanks for your kind help. Caveat.: I work under Windows.
# 2  
Old 10-24-2017
Any attempts / ideas / thoughts from your side?

Is the list given complete, or does your request apply to ALL punctuation chars?
This User Gave Thanks to RudiC For This Post:
# 3  
Old 10-24-2017
Many thanks for your queries:
My answers to both
  1. I tried to write a search and replace tool in Java. But unfortunately it does not accept punctuation markers and the preprocess.rul file fails and does not do the requisite replacement. In fact the rule file I posted is the rule file which I used for the Java search and replace.
  2. No the list is not integral it is partial and as I explore the database, some more cases may arise. But on the whole, all punctuation markers need to be replaced by a space followed by the punctuation marker.
Any script in Awk or Perl which can do this.
Thanks a lot

Last edited by rbatte1; 10-24-2017 at 06:24 AM.. Reason: Formatted numbered list with LIST=1 tags
# 4  
Old 10-24-2017
How about
Code:
sed 's/[[:punct:]]/ &/g' file
s 'est
l 'air
d 'homme
l 'issue
bleu -blanc -rouge
 (SDF )
a -t -il ?

This User Gave Thanks to RudiC For This Post:
# 5  
Old 10-24-2017
Hello,
I am not too familiar with sed
If I run the sed script you have given
Code:
sed 's/[[:punct:]]/ &/g' file

would it do the job.
A naive question maybe, but how do I run the script?
Thanks a lot for your kind help.
# 6  
Old 10-24-2017
You tell me if "it does the job". Enter the command as given on the terminal command line, replacing "file" with your input file name. Redirect the output to a destination file if happy with what you see. You may want to test it on a small sample of the input, though.
# 7  
Old 10-24-2017
Sorry for the delay.
I had to download a sed which works on Windows10.
Yes, it works and "does the job". "Cleans" up all the punctuations
Thanks a lot.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Need to find and replace in a file

Hi All, I am having below sample data in a file. I need to find all the line form this file with word ABC and i need to replace the characters at position 120 which is "CO:BOGFDUI"(30chars) in the lines with blank space. I have tried using grep to find the word with ABC (grep ABC filename),... (3 Replies)
Discussion started by: abhi_123
3 Replies

2. Shell Programming and Scripting

Perl script to read string from file#1 and find/replace in file#2

Hello Forum. I have a file called abc.sed with the following commands; s/1/one/g s/2/two/g ... I also have a second file called abc.dat and would like to substitute all occurrences of "1 with one", "2 with two", etc and create a new file called abc_new.dat sed -f abc.sed abc.dat >... (10 Replies)
Discussion started by: pchang
10 Replies

3. Shell Programming and Scripting

Find/replace in file from another file.

Dear Shell Expert, I have requirement of replacing passwd field in number of files based on username in them. The matching username and "new" password in available in a separate file. below is the sample for both. #sample of one of the file content, red highlighted field are username and... (20 Replies)
Discussion started by: KDDubai333
20 Replies

4. Shell Programming and Scripting

Find and Replace in File

Legends, I have a file /tmp/list.txt I want to find "/bin/" and replace it with "/log/" I tried the follwoing but no luck Sandy: /tmp> perl -pi -e 's/\/bin\/\/log\/' /tmp/list.txt >> /tmp/try Substitution pattern not terminated at -e line 1. AND, Sandy: /tmp> perl -pi -e... (2 Replies)
Discussion started by: sdosanjh
2 Replies

5. Shell Programming and Scripting

How to find a certain string in a file and replace it with a value from another file using sed/awk?

Hi Everyone, I am new to this forum and new to sed/awk programming too !! I need to find particular string in file1(text file) and replace it with a value from another text file(file2) the file2 has only one line and the value to be replaced with is in the second column. file 1: (assert (=... (21 Replies)
Discussion started by: paramad
21 Replies

6. Shell Programming and Scripting

find and replace a string in a file without the use of temp file

Hi - I am looking for a replacing a string in a in multiple *.sql files in directory with a new string without using a temporary file Normally I can use sed command as below for W in ls `FILE*.sql` do sed 's/OLD/NEW/g' $W > TEMPFILE.dat mv TEMPFILE.dat $W done But Here in my... (9 Replies)
Discussion started by: raghutapal
9 Replies

7. Shell Programming and Scripting

Find and replace in a gz file

Is there a way to do a find and replace in a .gz file in a single script ? I can always unzip, find and replace and then zip it again but would hate to do this everytime. Thanks ! Vivek (1 Reply)
Discussion started by: vashah
1 Replies

8. Shell Programming and Scripting

Find and replace in a file

Hi everyone, I am new to the world of shell script programming. I have a file named Fnd1.txt which has the contents as below. I need to replace the \t with the tab space. Can any one help me to write a perl scipt for this. USA45V1\tG\t341029 USAV1T1\tG\t450545 USAREJ1\tG\t572645... (5 Replies)
Discussion started by: vinay123
5 Replies

9. Shell Programming and Scripting

find and replace pattren in file

Hi, I have the input file having data as follow: file1.txt 001 aaa_1:abcd 002 bbb_2:abcd I want output as, 001xabcd 002xabcd Here iam trying to replace "{1 space}{alphanumeric string with underscore}{:}" with characrter "x". I tried to achieve this using sed;but Iam not getting this... (5 Replies)
Discussion started by: gopalss
5 Replies

10. UNIX for Dummies Questions & Answers

Find replace within a file?

I build several files by using the cut command to grab select fields(columns) from a really bid csv file. Each file is one column of data. I then put them together using paste command. Here is the code built in tcsh: cut -d , -f 1 some.csv > 1.csv cut -d , -f 10 some.csv > 10.csv paste 1.csv... (2 Replies)
Discussion started by: yankee428
2 Replies
Login or Register to Ask a Question