permutar a,b,c:
saida: abc acb bac bca cab cba
--------------------------------------%<--------------------------------------
#!/bin/bash
v=eval
e=echo
s=sed
r=( a b c );
_c()
{
for ((i=0; i<${#r[*]}; i++)); do
for c in ${r[*]}; do
o=$o$c','
done
t=$t'{'$($e $o| $s 's/,$//')'}'
o=''
done
$v $e $t |
$s -r "
s/(${r[0]}${r[0]}${r[0]}|[^${r[0]}]${r[0]}${r[0]}|${r[0]}[^${r[0]}]${r[0]}|${r[0]}${r[0]}[^${r[0]}]|${r[0]}${r[0]}${r[0]})\>//g;
s/(${r[1]}${r[1]}${r[1]}|[^${r[1]}]${r[1]}${r[1]}|${r[1]}[^${r[1]}]${r[1]}|${r[1]}${r[1]}[^${r[1]}]|${r[1]}${r[1]}${r[1]})\>//g;
s/(${r[2]}${r[2]}${r[2]}|[^${r[2]}]${r[2]}${r[2]}|${r[2]}[^${r[2]}]${r[2]}|${r[2]}${r[2]}[^${r[2]}]|${r[2]}${r[2]}${r[2]})\>//g;
"
}
_c| sed 's/\s\+/ /g;s/ //'
--------------------------------------%<--------------------------------------
ou
v=eval; e=echo; s=sed; r=( a b c ); _c() { for ((i=0; i<${#r[*]};
i++)); do for c in ${r[*]}; do o=$o$c','; done; t=$t'{'$($e $o| sed
's/,$//')'}';o='';done; $v $e $t | $s -r "
s/(${r[0]}${r[0]}${r[0]}|[^${r[0]}]${r[0]}${r[0]}|${r[0]}[^${r[0]}]${r[0]}|${r[0]}${r[0]}[^${r[0]}]|${array[0]}${array[0]}${array[0]})\>//g;
s/(${r[1]}${r[1]}${r[1]}|[^${r[1]}]${r[1]}${r[1]}|${r[1]}[^${r[1]}]${r[1]}|${r[1]}${r[1]}[^${r[1]}]|${array[1]}${array[1]}${array[1]})\>//g;
s/(${r[2]}${r[2]}${r[2]}|[^${r[2]}]${r[2]}${r[2]}|${r[2]}[^${r[2]}]${r[2]}|${r[2]}${r[2]}[^${r[2]}]|${array[2]}${array[2]}${array[2]})\>//g;
"; }; _c| $s 's/\s\+/ /g;s/ //'