Generate all possible word with caps and no caps


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Generate all possible word with caps and no caps
# 1  
Old 03-11-2013
Generate all possible word with caps and no caps

With use of sed/awk, how can I print all possible combinations of a word with caps/non-caps.

Eg

Applying operation on "cap" should generate output as follows.
Code:
cap
CAP
Cap
cAp
caP
CAp
cAP
CaP

# 2  
Old 03-11-2013
Code:
echo "cap" | awk ' BEGIN {
        j = 1
} {
        len = length ($0)

        printf "%s\n", toupper($0)
        printf "%s\n", tolower($0)

        while ( j <= len )
        {
                for ( i = 1; i <= len; i++ )
                {
                        if ( i == j )
                                printf toupper(substr($0,i,1))
                        else
                                printf tolower(substr($0,i,1))
                }
                printf "\n"
                for ( i = 1; i <= len; i++ )
                {
                        if ( i == j )
                                printf tolower(substr($0,i,1))
                        else
                                printf toupper(substr($0,i,1))
                }
                printf "\n"
                ++j
        }
} '

--EDIT--

Even though this code will give desired output for word: cap it seems like I missed few combinations & hence will not work for bigger words.

Please disregard this solution.

Last edited by Yoda; 03-11-2013 at 02:07 AM.. Reason: Please disregard.
# 3  
Old 03-11-2013
Code:
echo "test" | awk 'function mix(w,v,a) {
   for(i=length(w)-1;i>=0;i--) {
      if(v>=2^i){
          v=v-2^i
          a=toupper(substr(w,i+1,1)) a
      } else a=tolower(substr(w,i+1,1))a
    }
    return a
}
{for(v=0;v<2^length;v++) print mix($0, v)}'


Output:
Code:
test
Test
tEst
TEst
teSt
TeSt
tESt
TESt
tesT
TesT
tEsT
TEsT
teST
TeST
tEST
TEST

These 2 Users Gave Thanks to Chubler_XL For This Post:
# 4  
Old 03-11-2013
Thanks it works perfectly. Can you help in achieving this also?

If I echo "mortgage" and manipulate it with sed/awk, I should get output as follows
Code:
[Mm][Oo][Rr][Tt][Gg][Aa][Gg][Ee]

# 5  
Old 03-11-2013
Using awk:

Code:
$ echo mortgage | awk '{for(i=1;i<NF;i++) printf "[%c%c]",toupper($i),tolower($i); printf "\n"}' FS=
[Mm][Oo][Rr][Tt][Gg][Aa][Gg][Ee]

# 6  
Old 03-11-2013
Like this?
Code:
echo "mortage" | awk  '{for (i=1;i<=NF;i++) printf "["toupper($i)$i"]"} END {print ""}' FS=""
[Mm][Oo][Rr][Tt][Aa][Gg][Ee]

This User Gave Thanks to Jotne For This Post:
# 7  
Old 03-11-2013
Thank you it works fine.

A it more complicated. When I echo a word and perform sed/awk, it should be as follows.
Code:
echo viagra | awk_operation
Result:
(?i\)\\b[Vv].?[Ii].?[Aa].?[Gg].?[Rr].?[Aa]\\b

Similary
echo good | awk_opearation
Result:
(?i\)\\b[Gg].?[Oo].?[Oo].?[Dd]\\b

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Caps lock problem

hi all this s quite a foolish problem. I seem to hav pressed some keys s.t in unix, my letters are comin in caps and with caps lock on, i am getting lowercase letters. :o Pls help. Also is there any reference or manual where i can check in case such problems arrise? thanx in advance curiosity (4 Replies)
Discussion started by: curiosity
4 Replies

2. UNIX for Dummies Questions & Answers

Is there a way to ignore CAPS or case sensitivity?

If I'm using a program that is expecting certain filenames and directories to be all CAPS, isn't there a way to ignore this in linux/cshell scripting? I.e., similiar to ignoring spaces with " (i.e., directory is directory 1, can ignore by typing "directory 1".) ?? (2 Replies)
Discussion started by: rebazon
2 Replies

3. Shell Programming and Scripting

Commands in all caps

Is it possible to make a bash script such that entering a command in all capital letters would be equivalent to using "sudo" before that command? For example: "sudo chmod 777 foo.txt" becomes "CHMOD 777 foo.txt" (3 Replies)
Discussion started by: bloom
3 Replies

4. UNIX for Dummies Questions & Answers

Copying files with caps?

Anyone know the proper command to copy files whose names CONTAIN a capital letter to a diff location? Every time I do it I ke copying ALL the files. Here is what ive tried cp ** newlocation cp newlocation (5 Replies)
Discussion started by: losingit
5 Replies

5. UNIX for Advanced & Expert Users

Set Caps and Num lock from within X?

Hello, Not sure if this is the right place to post it but.. I have a requirement to set Caps lock and/or Num lock on and off via a Cron job. Now I have working scripts that do the job, but as soon as X starts up the jobs no longer run (well they appear to, but Caps lock and Num lock do not... (0 Replies)
Discussion started by: autotuner
0 Replies

6. HP-UX

Caps lock dtterm

Hello, We are having a problem with running dtterm off a RHEL server. Logging into an HP-UX server from a RHEL 5.1 desktop, setting DISPLAY and running dtterm, the caps lock does not work. We have been playing with xmodmap & stty but to no avail. Any help appreciated. mgb (7 Replies)
Discussion started by: mgb
7 Replies

7. Red Hat

Caps lock dtterm

Hello, We are having a problem with running dtterm off a RHEL server. Logging into an HP-UX server from a RHEL 5.1 desktop, setting DISPLAY and running dtterm, the caps lock does not work. We have been playing with xmodmap & stty but to no avail. Any help appreciated. mgb (1 Reply)
Discussion started by: mgb
1 Replies

8. Shell Programming and Scripting

changing first letter to CAPS

Hi, I want to convert the first letter of this word from lowecase to uppercase. Assume a letter united. I want to translate to United Please let me know a simple way to do that. Thanks. (22 Replies)
Discussion started by: Krrishv
22 Replies

9. Shell Programming and Scripting

Convert character in word to CAPS??

Hi Gurus!! Is it possible to change a letter in a word to CAPS?? When correcting a paragraph i need to covert the word if it appears at the start of a line to caps....... if i had a phrase like my name is james and would like to sign up. how do i convert "my" to "My" or the... (3 Replies)
Discussion started by: vadharah
3 Replies
Login or Register to Ask a Question