matching characters between strings


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers matching characters between strings
# 1  
Old 12-05-2006
Power matching characters between strings

please send the logic or program to find the matching characters between two strings

for ex string1 :abc
string2 :adc


no .of matching characters is 2(a,c)
# 2  
Old 12-05-2006
Python alternative:
Code:
result=[]
count = 0
for i in range(len(a)):
 	if a[i] == b[i]:
 		count += 1
 		result.append(a[i])
print count,result

output:
Code:
2 ['a', 'c']

# 3  
Old 12-06-2006
Do you mean positional match (ghostdog gave you an answer for that) or do you want exists? ie: "cda" "abc" gives "a c"
# 4  
Old 12-07-2006
CPU & Memory

HI
Exactly the way you mentioned 'abc' adc' means a and c (common characters ) that too for one occurance only if there is second occurance then it should ignore that ...I am planning to do a shell script in AIX but I am stuck with how to read a string character by character pls..give me a solution
# 5  
Old 12-07-2006
Here is a basic script. Modify to suite your requirements.

Code:
[/tmp]$ cat try.ksh
#! /bin/ksh

haystack="The quick brown fox jumps over the lazy dog"
needle="acefizkjlfsh"

hold=$needle
typeset -L1 bit
match=""

while [[ ${#hold} -gt 0 ]]
do
    bit=$hold
    if [[ $haystack = *$bit* ]] ; then
        if [[ $match != *$bit* ]] ; then
            match=$match$bit
        fi;
    fi;
    hold=${hold#$bit}
done

echo "${#match} - $match"
[/tmp]$ ./try.ksh
11 - acefizkjlsh
[/tmp]$


Last edited by vino; 12-07-2006 at 08:38 AM..
# 6  
Old 12-07-2006
Or...
Code:
echo "The quick brown fox jumps over the lazy dog" | fold -1 | sort -u > file1
echo "acefizkjlfsh" | fold -1 | sort -u | egrep -f file1 > file2
echo $(wc -l < file2) [$(paste -s -d, file2)]

...gives...
Code:
11 [a,c,e,f,h,i,j,k,l,s,z]

# 7  
Old 12-08-2006
Quote:
Originally Posted by Ygor
Or...
Code:
echo "The quick brown fox jumps over the lazy dog" | fold -1 | sort -u > file1
echo "acefizkjlfsh" | fold -1 | sort -u | egrep -f file1 > file2
echo $(wc -l < file2) [$(paste -s -d, file2)]

...gives...
Code:
11 [a,c,e,f,h,i,j,k,l,s,z]

Stunning as always !
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

(g)awk: Matching strings from one file in another file between two strings

Hello all, I can get close to what I am looking for but cannot seem to hit it exactly and was wondering if I could get your help. I have the following sample from textfile with many thousands of lines: File 1 PS001,001 HLK PS002,004 L<G PS004,002 XNN PS004,006 BVX PS004,006 ZBX=... (7 Replies)
Discussion started by: jvoot
7 Replies

2. Shell Programming and Scripting

Strings between 2 characters

Hi I have a wired string pattern ( mongo output) which I need to convert to only values. "_id" : ObjectId("59280d9b95385c78b73252e4"), "categorySetId" : NumberLong(1100000041), "categorySetName" : "PROD GROUP", "serviceableProductFlag" : "N", "categoryId" : NumberLong(1053), "pid" :... (5 Replies)
Discussion started by: Abhayman
5 Replies

3. Shell Programming and Scripting

Matching only the strings I provide - sed

Hello.. I am currently learning sed and have found myself in some trouble.. I wrote this command: sed -ne 's/*\(\{2\}*\{2\}*\{2\}*\).*\(\{2\}*\{2\}*\{2\}*\).*/\1\2/p' and some of the output i get is : ->stockholm->paris<-stockholmpi<-tokyo->paris<-stockholmpi... (8 Replies)
Discussion started by: jozo95
8 Replies

4. Shell Programming and Scripting

Need to append matching strings in a file

Hi , I am writing a shell script to check pvsizes in linux box. # for i in `cat vgs1` > do > echo "########### $i ###########" > pvs|grep -i $i|awk '{print $2,$1,$5}'>pvs_$i > pvs|grep -i $i|awk '{print $1}'|while read a > do > fdisk -l $a|head -2|tail -1|awk '{print $2,$3}'>pvs_$i1 >... (3 Replies)
Discussion started by: nanduri
3 Replies

5. Shell Programming and Scripting

Concatenating 2 lines from 2 files having matching strings

Hello All Unix Users, I am still new to Unix, however I am eager to learn it.. I have 2 files, some lines have some matching substrings, I would like to concatenate these lines into one lines, leaving other untouched. Here below is an example for that.. File 1 (fasta file): >292183... (6 Replies)
Discussion started by: Mohamed EL Hadi
6 Replies

6. Shell Programming and Scripting

matching strings from different files

I want to compare file 1 to file 2 and if a string from file 1 appears in file 2, then print the file 2 row, where the string appears, onto file3. file 1 looks like this. DOG_0004340 blah blah2 j 22424 DOG_3010311 blah blah3 o 24500 DOG_9949221 blah blah6 x 35035 file 2 looks like... (5 Replies)
Discussion started by: verse123
5 Replies

7. Shell Programming and Scripting

Picking matching strings

I have a list of file names. However in some instances I might have a "-" at the beginning of the filename or an "=". For example I might have something like this set Lst = "file1 file2 file3 -file4 file5=" I want to pick up the ones having "-" at the beginning or "=" and store them in... (22 Replies)
Discussion started by: kristinu
22 Replies

8. UNIX for Dummies Questions & Answers

Help with finding matching position on strings

I have a DNA file like below and I am able to write a short program which finds/not an input motif, but I dont understand how I can include in the code to report which position the motif was found. Example I want to find the first or all "GAT" motifs and want the program to report which position... (12 Replies)
Discussion started by: pawannoel
12 Replies

9. Programming

help with matching strings

In C programming how do i check if a char is equal to a vowel , like a e i o or u, small or big case. in my function i have the parameter like *word, and i am using word in a for loop, to check if its equal. i use tolower(word)=='a' || ..... but for some reason it only matches on lower case and... (1 Reply)
Discussion started by: omega666
1 Replies

10. Shell Programming and Scripting

Strings not matching

Hi, I have got two variables holding strings, if i echo them, they print the same value but if i compare the condition fails?? can somebody suggest something?? I have checked the word count too, they are also same. Thanks, Atul (4 Replies)
Discussion started by: atulmt
4 Replies
Login or Register to Ask a Question