Visit Our UNIX and Linux User Community


string comparison


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting string comparison
# 1  
Old 02-01-2008
string comparison

Hello experts,

(tcsh shell)

Quite new to shell scripting...

I have got a file with a single word on each line. Want to be able to make a comparison such that i can read pairs of words that are ROT13 to each other. Also, i would like to print the pairs to another file.

Any help appreciated....

Thanks in advance !
# 2  
Old 02-02-2008
Given e.g.

Code:
#  cat rotfile
hello
world
uryyb
this
is
a
test
n
grfg
file

Following will pull out all matching rot 13 pairs:

Code:
#  for x in `cat rotfile`; do y=`echo $x  | tr '[a-z]' '[n-z][a-m]'`;if [ `grep $y rotfile` ]; then  echo $x $y; fi; done | awk '{arr[$1]=$2;if ( arr[$2] != $1 ){print $0}}'
hello uryyb
a n
test grfg


HTH,
# 3  
Old 02-02-2008
oh yeah - and make it:

Code:
for x in `cat rotfile`; do y=`echo $x  | tr '[a-z]' '[n-z][a-m]'`;if [ `grep $y rotfile` ]; then  echo $x $y; fi; done | awk '{arr[$1]=$2;if ( arr[$2] != $1 ){print $0}}' > rotfile.out

to send your output to the file rotfile.out Smilie
# 4  
Old 02-04-2008
Appreciate it !
Can understand it and it aint that complicated ! Its just that i am quite new to this type of programming and running out of time as this was just something I had to get out of the way !

Thanks !!
# 5  
Old 02-04-2008
got a question....

have tried the above and works perfectly for all small files. But for very large files, comes up with error saying 'too many arguments' !

Any solution for this?

Thanks again.
# 6  
Old 02-04-2008
Development to my previous post !!

What i did find out was that the error mesg - 'too many arguments' was due to having numbers in the file as well, instead of just characters !

the code does not work with numbers in the file. It only works for files with characters only. Sorry should have mentioned earlier, got numbers in some of my files too !!!

Can you help me out here. I am trying as well.

Thanks

Previous Thread | Next Thread
Test Your Knowledge in Computers #47
Difficulty: Easy
Von Neumann is considered to be the 'Father of Computing'.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk string comparison unterminated quoted string andrule of thumb

I have the logic below to look up for matches within the columns between the two files with awk. In the if statement is where the string comparison is attempted with == The issue seems to be with the operands, as 1. when " '${SECTOR}' " -- double quote followed by single quote -- awk matches... (1 Reply)
Discussion started by: deadyetagain
1 Replies

2. Shell Programming and Scripting

String comparison

hi team, i want to compare the below string from logs, but its is not working. if ]; then echo "restart some process" fi (4 Replies)
Discussion started by: mfaizan40
4 Replies

3. Homework & Coursework Questions

passing letters from an array into a string for string comparison

attempting the hangman program. This was an optional assignment from the professor. I have completed the logical coding, debugging now. ##I have an array $wordString that initializes to a string of dashes ##reflecting the number of letters in $theWord ##every time the user enters a (valid)... (5 Replies)
Discussion started by: lotsofideas
5 Replies

4. Shell Programming and Scripting

to extract string from main string and string comparison

continuing from my previous post, whose link is given below as a reference https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569 consider there is create table commands in a file for eg: CREATE TABLE `Blahblahblah` ( `id` int(11) NOT NULL... (2 Replies)
Discussion started by: vivek d r
2 Replies

5. Shell Programming and Scripting

Help with string comparison

#!/bin/sh PRINTF=/usr/bin/printf MACHINE_NAME=`uname -n` TIME=`date +"%H"` $PRINTF "Welcome to $MACHINE_NAME. What is your name?\n" read NAME if ; then $PRINTF "Good morning $NAME, how are you?\n" elif ; then $PRINTF "Good afternoon $NAME, how are you?\n" else $PRINTF "Good... (2 Replies)
Discussion started by: ikeQ
2 Replies

6. UNIX and Linux Applications

Need Help on String Comparison

Hi , My requirement is to read from a file into a variable. I need to check if the variable is equal to string "no rows selected". The sh script snippet is as follows: file=/data/lpgtwo/home/nikhilp/TriggerNames.txt echo $file var=`cat $file` echo $var if then echo "No... (3 Replies)
Discussion started by: MNG
3 Replies

7. Shell Programming and Scripting

Help with String Comparison

I'm running the following script to compare string values to a regexp: for entry in $(lpinfo -v | cut -c 1-); do if then echo "blah" continue fi done Whenever I run it, each token of lpinfo is being interpreted as a command and I get errors such as: ... (2 Replies)
Discussion started by: hypnotic_meat
2 Replies

8. UNIX for Dummies Questions & Answers

string comparison

Hi Guys i need to write a script to check the file structure I have added the the file headers in the configuration file and execute the file at the start of the script. Now the function checkFileStructure() { echo "Inside the function" filetocheck=$1 fileheader=$2 if ] then... (1 Reply)
Discussion started by: Swapna173
1 Replies

9. Shell Programming and Scripting

string comparison

The script will read a bunch of names, and test if it contains "John", but as below apparently ~ does not work, so what is the easiest way to perform string comparison in bash shell script? thanks ... elif then echo "get John" .... (2 Replies)
Discussion started by: fedora
2 Replies

10. Programming

String Comparison

Hi all, I have a file like this ibhib=ere wefwfl=werfe sfdes=wef From this file, i need to get the lefthand side string with respect to the corresponding righthand side string. i.e, I need to get the string "ere" with respect to "ibhib". But i am stuck with how to compare a string... (1 Reply)
Discussion started by: abey
1 Replies

Featured Tech Videos