我正在尝试编写一个代码,将任何给定的单词转换为其数字名称。
例如:国际化 = i18n(第一个字符+中间的字符数+最后一个字符)
我找到了如何找到第一个和最后一个字符,我知道如何找到数字部分,但我不知道如何将数字放在第一个和最后一个字符之间。
我用来获取数字部分的代码是:
cut -c 2- | rev | cut -c 2- | rev | tr -d [:space:]| wc -c
Run Code Online (Sandbox Code Playgroud)
我用来获取第一个和最后一个字符的代码:
awk -F "" '{print $1,$NF}'
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个脚本(script1.sh),当给定一堆字母时,它会找到每个可能的单词。
单词必须以混乱的第一个字母开头并以最后一个字母结尾。
单词的字母需要遵循混乱中的字母顺序。
混乱中的每个字母都可以使用多次。
所以这
./script1.sh "qwertyuytresdftyuiokn"
Run Code Online (Sandbox Code Playgroud)
应该输出queen
和question
而不是“抚慰”,因为“E”来之前,“U”,并在混乱的“i”。
我尝试将第一个、最后一个和剩余的字母分配给变量,然后使用 egrep 查找单词,但我找不到使用字母顺序的方法。所以这个也给了我无效的词。
#!/bin/bash
first_letter=$(echo $@ | cut -c1)
last_letter=$(echo $@ |rev| cut -c1)
remaining_letters=$(echo $@ | cut -c2- | rev | cut -c2-)
grep -E "^$first_letter[$remaining_letters]*$last_letter$" /usr/share/dict/words
Run Code Online (Sandbox Code Playgroud)
然后我尝试将混乱变成一个数组,但又一次,我找不到在混乱中找到遵守顺序的单词的方法。
我正在尝试编写一个脚本(script1.sh),它给出第一个数字中每个数字的总和,提高到第二个数字的幂。所以
./script1.sh 12345 2
应该输出 55
(因为 1+4+9+16+25=55)
或者 ./script1.sh 3706907995955475988644381 25
应该输出3706907995955475988644381
.
我写了一个脚本,但在某些情况下,我得到了一个负面的输出,我不知道这是怎么发生的。
例如
./script1.sh 3706907995955475988644380 25
产出
-2119144605827694052
我的脚本:
#!/bin/bash
sum=0
value=$1
arr=()
for ((i = 0; i < ${#value}; i++)); do
arr+=(${value:$i:1})
done
for x in "${arr[@]}"; do
sum=$(($sum+(x**$2)))
done
echo $sum
Run Code Online (Sandbox Code Playgroud)