Sponsored Content
Full Discussion: How to generate the list?
Top Forums Shell Programming and Scripting How to generate the list? Post 302408523 by rdcwayx on Monday 29th of March 2010 07:40:37 PM
Old 03-29-2010
Quote:
Originally Posted by Tytalus
The following should do what you want:

Code:
echo a b c | nawk '
function perm(s,x,i,j,n,tmp) {
  n = split(s, L)
  if (x > n) { print s;return}
  for (i=x; i<=n; i++) {
    if (i != x) {
      tmp = L[x]; L[x] = L[i]; L[i] = tmp
      nextstr = L[1]
      for (j=2; j<=n; j++) nextstr = nextstr" "L[j]
    } 
    else {
      nextstr = s
    }
  perm(nextstr, x+1)
  n = split(s, L)
  }
}

{
    perm($0,1)
}'
a b c
a c b
b a c
b c a
c b a
c a b

HTH
Thanks, the result is what I need. The only problem is I'd like to use the input and output word without space inside. I try to adjust your output, but not fix in this awk code.

If I can get the result with input, such as by "script.sh expect", it will be more better.

Code:
echo e x p e c t | nawk '
function perm(s,x,i,j,n,tmp) {
  n = split(s, L)
  if (x > n) { print s;return}
  for (i=x; i<=n; i++) {
    if (i != x) {
      tmp = L[x]; L[x] = L[i]; L[i] = tmp
      nextstr = L[1]
      for (j=2; j<=n; j++) nextstr = nextstr" "L[j]
    }
    else {
      nextstr = s
    }
  perm(nextstr, x+1)
  n = split(s, L)
  }
}

{
    perm($0,1)
}' |sed 's/ //g' |fmt
expect expetc expcet expcte exptce exptec exepct exeptc execpt exectp
exetcp exetpc except excetp excpet excpte exctpe exctep extecp extepc
extcep extcpe extpce extpec epxect epxetc epxcet epxcte epxtce epxtec
epexct epextc epecxt epectx epetcx epetxc epcext epcetx epcxet epcxte
epctxe epctex eptecx eptexc eptcex eptcxe eptxce eptxec eepxct eepxtc
eepcxt eepctx eeptcx eeptxc eexpct eexptc eexcpt eexctp eextcp eextpc
eecxpt eecxtp eecpxt eecptx eectpx eectxp eetxcp eetxpc eetcxp eetcpx
eetpcx eetpxc ecpext ecpetx ecpxet ecpxte ecptxe ecptex ecepxt eceptx
ecexpt ecextp ecetxp ecetpx ecxept ecxetp ecxpet ecxpte ecxtpe ecxtep
ectexp ectepx ectxep ectxpe ectpxe ectpex etpecx etpexc etpcex etpcxe
etpxce etpxec etepcx etepxc etecpx etecxp etexcp etexpc etcepx etcexp
etcpex etcpxe etcxpe etcxep etxecp etxepc etxcep etxcpe etxpce etxpec
xepect xepetc xepcet xepcte xeptce xeptec xeepct xeeptc xeecpt xeectp
xeetcp xeetpc xecept xecetp xecpet xecpte xectpe xectep xetecp xetepc
xetcep xetcpe xetpce xetpec xpeect xpeetc xpecet xpecte xpetce xpetec
xpeect xpeetc xpecet xpecte xpetce xpetec xpceet xpcete xpceet xpcete
xpctee xpctee xptece xpteec xptcee xptcee xptece xpteec xepect xepetc
xepcet xepcte xeptce xeptec xeepct xeeptc xeecpt xeectp xeetcp xeetpc
xecept xecetp xecpet xecpte xectpe xectep xetecp xetepc xetcep xetcpe
xetpce xetpec xcpeet xcpete xcpeet xcpete xcptee xcptee xcepet xcepte
xceept xceetp xcetep xcetpe xceept xceetp xcepet xcepte xcetpe xcetep
xcteep xctepe xcteep xctepe xctpee xctpee xtpece xtpeec xtpcee xtpcee
xtpece xtpeec xtepce xtepec xtecpe xtecep xteecp xteepc xtcepe xtceep
xtcpee xtcpee xtcepe xtceep xteecp xteepc xtecep xtecpe xtepce xtepec
pxeect pxeetc pxecet pxecte pxetce pxetec pxeect pxeetc pxecet pxecte
pxetce pxetec pxceet pxcete pxceet pxcete pxctee pxctee pxtece pxteec
pxtcee pxtcee pxtece pxteec pexect pexetc pexcet pexcte pextce pextec
peexct peextc peecxt peectx peetcx peetxc pecext pecetx pecxet pecxte
pectxe pectex petecx petexc petcex petcxe petxce petxec peexct peextc
peecxt peectx peetcx peetxc pexect pexetc pexcet pexcte pextce pextec
pecxet pecxte pecext pecetx pectex pectxe petxce petxec petcxe petcex
petecx petexc pceext pceetx pcexet pcexte pcetxe pcetex pceext pceetx
pcexet pcexte pcetxe pcetex pcxeet pcxete pcxeet pcxete pcxtee pcxtee
pctexe pcteex pctxee pctxee pctexe pcteex pteecx pteexc ptecex ptecxe
ptexce ptexec pteecx pteexc ptecex ptecxe ptexce ptexec ptceex ptcexe
ptceex ptcexe ptcxee ptcxee ptxece ptxeec ptxcee ptxcee ptxece ptxeec
expect expetc expcet expcte exptce exptec exepct exeptc execpt exectp
exetcp exetpc except excetp excpet excpte exctpe exctep extecp extepc
extcep extcpe extpce extpec epxect epxetc epxcet epxcte epxtce epxtec
epexct epextc epecxt epectx epetcx epetxc epcext epcetx epcxet epcxte
epctxe epctex eptecx eptexc eptcex eptcxe eptxce eptxec eepxct eepxtc
eepcxt eepctx eeptcx eeptxc eexpct eexptc eexcpt eexctp eextcp eextpc
eecxpt eecxtp eecpxt eecptx eectpx eectxp eetxcp eetxpc eetcxp eetcpx
eetpcx eetpxc ecpext ecpetx ecpxet ecpxte ecptxe ecptex ecepxt eceptx
ecexpt ecextp ecetxp ecetpx ecxept ecxetp ecxpet ecxpte ecxtpe ecxtep
ectexp ectepx ectxep ectxpe ectpxe ectpex etpecx etpexc etpcex etpcxe
etpxce etpxec etepcx etepxc etecpx etecxp etexcp etexpc etcepx etcexp
etcpex etcpxe etcxpe etcxep etxecp etxepc etxcep etxcpe etxpce etxpec
cxpeet cxpete cxpeet cxpete cxptee cxptee cxepet cxepte cxeept cxeetp
cxetep cxetpe cxeept cxeetp cxepet cxepte cxetpe cxetep cxteep cxtepe
cxteep cxtepe cxtpee cxtpee cpxeet cpxete cpxeet cpxete cpxtee cpxtee
cpexet cpexte cpeext cpeetx cpetex cpetxe cpeext cpeetx cpexet cpexte
cpetxe cpetex cpteex cptexe cpteex cptexe cptxee cptxee cepxet cepxte
cepext cepetx ceptex ceptxe cexpet cexpte cexept cexetp cextep cextpe
ceexpt ceextp ceepxt ceeptx ceetpx ceetxp cetxep cetxpe cetexp cetepx
cetpex cetpxe cepext cepetx cepxet cepxte ceptxe ceptex ceepxt ceeptx
ceexpt ceextp ceetxp ceetpx cexept cexetp cexpet cexpte cextpe cextep
cetexp cetepx cetxep cetxpe cetpxe cetpex ctpeex ctpexe ctpeex ctpexe
ctpxee ctpxee ctepex ctepxe cteepx cteexp ctexep ctexpe cteepx cteexp
ctepex ctepxe ctexpe ctexep ctxeep ctxepe ctxeep ctxepe ctxpee ctxpee
txpece txpeec txpcee txpcee txpece txpeec txepce txepec txecpe txecep
txeecp txeepc txcepe txceep txcpee txcpee txcepe txceep txeecp txeepc
txecep txecpe txepce txepec tpxece tpxeec tpxcee tpxcee tpxece tpxeec
tpexce tpexec tpecxe tpecex tpeecx tpeexc tpcexe tpceex tpcxee tpcxee
tpcexe tpceex tpeecx tpeexc tpecex tpecxe tpexce tpexec tepxce tepxec
tepcxe tepcex tepecx tepexc texpce texpec texcpe texcep texecp texepc
tecxpe tecxep tecpxe tecpex tecepx tecexp teexcp teexpc teecxp teecpx
teepcx teepxc tcpexe tcpeex tcpxee tcpxee tcpexe tcpeex tcepxe tcepex
tcexpe tcexep tceexp tceepx tcxepe tcxeep tcxpee tcxpee tcxepe tcxeep
tceexp tceepx tcexep tcexpe tcepxe tcepex tepecx tepexc tepcex tepcxe
tepxce tepxec teepcx teepxc teecpx teecxp teexcp teexpc tecepx tecexp
tecpex tecpxe tecxpe tecxep texecp texepc texcep texcpe texpce texpec



---------- Post updated at 10:40 AM ---------- Previous update was at 10:36 AM ----------

Quote:
Originally Posted by alister
eeeeee eeeeex eeeeep eeeeee eeeeec eeeeet eeeexe eeeexx eeeexp
Alister
Thank you, maybe I don't express clearly, I just want to reorganize the letters, no new letters to be added.

for above sample, in word "expect", there is only two "e", but in your sample output, there are more "e"s.

Last edited by rdcwayx; 03-29-2010 at 08:47 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to generate a list of files

Hello people I need to find a way to generate a file that contains the names of all *.jpg files that were generated after a specific date The search should start in my current folder and recursively search inner folders It would be best to list the file names one below the other in the output... (3 Replies)
Discussion started by: jasongr
3 Replies

2. Shell Programming and Scripting

how to generate a random list from a given list

Dear Masters, Is there an easy way to generate a random list from a give list of names? Let's say, I have a file containing 15000 city name of world(spreadsheet, names in the first column), I would like to randomly pick up 50 cities each time for total 1000 picks. Or doesn't anyone know a... (3 Replies)
Discussion started by: mskcc
3 Replies

3. UNIX for Advanced & Expert Users

How to generate a 'kill' list

Hi, I want to write a script which can generate a kill list for killing process, program name start with f60.., which have been running for more than 8 hours, the list output should looks like: kill -9 4444176 kill -9 4674520 kill -9 4454180 kill -9 4994523 Can anyone help how to write... (10 Replies)
Discussion started by: victorcheung
10 Replies

4. Shell Programming and Scripting

generate a report

Hi Please help me to resolve the below query. My shell script has generated a file output.file like below ******************************** DROP TABLE GPS_CONTACT_DETAILS DB20000I The SQL command completed successfully. CREATE TABLE GPS_CONTACT_DETAILS ( CONTACT_ID ... (8 Replies)
Discussion started by: sailaja_80
8 Replies

5. Shell Programming and Scripting

Script to generate a list of number

How can I generate a list of numbers and place all of these numbers in a line-by-line into a file. I am new to scripting actually. 0501000000 to 0509999999 i.e. 0501000000 0501000001 ...... 0509999999 set 02 0551000000 to 0559999999 i.e. 0551000000 0551000001 ...... 0559999999 ... (3 Replies)
Discussion started by: noo
3 Replies

6. Shell Programming and Scripting

generate a report

I am trying to generate a report for a file called phone_book awk -f {phone_book} why does this not work? Nothing happens at all. (2 Replies)
Discussion started by: gustave
2 Replies

7. Shell Programming and Scripting

Generate a change list of files/dir

Is there a tool that can diff a directory and generate a change list of files in that directory based on a previous snapshot on the directory? For example /etc/a.txt:changed /etc/b.txt:removed /etc/c.txt:added Thanks! (1 Reply)
Discussion started by: overmindxp
1 Replies

8. UNIX for Dummies Questions & Answers

Generate list of deleted files

I copied all JPEGs from my laptop to an external drive using find . -name "*.jpg" -exec cp '{}' ./media/Backup/pictures \; And then deleted all of them from my laptop. Now, I realize that I need the folder path of all the original JPEGs as the path has the important information. I dont... (1 Reply)
Discussion started by: eshwaconsulting
1 Replies

9. Shell Programming and Scripting

Generate list of directories that a user has access to

I manage an AIX OS 7.1 system on IBM Power 770. I want to find out which directories/folders a particular user has read/write access to. How can I cleanly create a list of all directories on the system that a user has access to.. Does this make sense? Thanks in Advance, NEWB:rolleyes: (3 Replies)
Discussion started by: code911
3 Replies

10. Shell Programming and Scripting

Generate list of letters

Heyas I want to list passed arguments and make an incrementing 'marker'. That 'marker' should be a letter between a-z, in proper order. I'm not aware of a seq pendant, so i tried it with this: C=141 list="" while ];do printf \\$C list+=" \\$C" C=$((C+1)) done echo... (3 Replies)
Discussion started by: sea
3 Replies
All times are GMT -4. The time now is 05:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy