gpt4 book ai didi

bash - 在 bash 中生成大小写范围

转载 作者:行者123 更新时间:2023-11-29 09:15:07 25 4
gpt4 key购买 nike

我想将两位数和三位数字输入到函数中并输出大小写范围,即输入 3366 并输出 3[3- 9] | [4-5][0-9] | 6[0-6] 或输入 33666 并输出 3[3-9] | [4-9][0-9] | [1-5][0-9][0-9] | 6[0-5][0-9] | 66[0-6]

关于如何做有哪些想法?谢谢!

最佳答案

只想分享最终代码:https://gist.github.com/zaydek/1627329f88c444f6d71d5cbc0cda616f :)

function enc {

a=${1: -3:1}; b=${1: -2:1}; c=${1: -1}
d=${2: -3:1}; e=${2: -2:1}; f=${2: -1}

if (( $[a] < $[d] )); then

if (( $b$c == 00 && $e$f == 99 )); then echo [$a-$d][0-9][0-9]
elif (( $b$c == 00 )); then if (( $[a+1] < $d )); then echo [$a-$[d-1]][0-9][0-9] "|"; echo $(enc $[d]00 $d$e$f)
else echo $a[0-9][0-9] "|"; echo $(enc $[a+1]00 $d$e$f); fi

else echo $(enc $a$b$c $[a]99) "|"; echo $(enc $[a+1]00 $d$e$f); fi

elif (( $b < $e )); then

if (( $c == 0 && $f == 9 )); then echo $a[$b-$e][0-9]
elif (( $c == 0 )); then if (( $[b+1] < $e )); then echo $a[$b-$[e-1]][0-9] "|"; echo $(enc $a$[e]0 $d$e$f)
else echo $a$b[0-9] "|"; echo $(enc $a$[e]0 $d$e$f); fi

else echo $(enc $a$b$c $a$[b]9) "|"; echo $(enc $a$[b+1]0 $d$e$f); fi

else

if (( $c == $f )); then echo $a$b$c
else echo $a$b[$c-$f]; fi; fi

}

function int {

if [[ $1 = *.* ]]; then

integer=${1%.*}
decimal=${1#*.}

if (( ${decimal:0:1} >= 5 )); then integer=$[integer+1]; fi

echo $integer
else echo $1; fi

}

function cse {

minimum=$(int $(echo $1 $2 | awk '{ print ($1/$2)*( 90) }'))
maximum=$(int $(echo $1 $2 | awk '{ print ($1/$2)*(110) }'))

echo $(enc $minimum $maximum)

}

cse $1 $2

cse 接受两个输入,将它们转换为小数,并从一个范围内乘以每个输入,即 90110 为 -10%和 +10% 的错误范围,然后传递 minimummaximum 输出作为 enc 的输入,enc 是一个生成大小写范围语法的递归函数(语法优化)。

请注意,bash 似乎没有按预期或意图处理大小写范围的表达式。不过,此代码可用于为所有 2 到 3 位数字生成大小写范围,然后复制并粘贴为内联代码。

关于bash - 在 bash 中生成大小写范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com