小编art*_*rty的帖子

如何在 bash 中创建数字名称

我正在尝试编写一个代码,将任何给定的单词转换为其数字名称。

例如:国际化 = 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)

bash awk cut

10
推荐指数
4
解决办法
1310
查看次数

如何查找遵循特定顺序的单词

我正在尝试编写一个脚本(script1.sh),当给定一堆字母时,它会找到每个可能的单词。

  • 单词必须以混乱的第一个字母开头并以最后一个字母结尾。

  • 单词的字母需要遵循混乱中的字母顺序。

  • 混乱中的每个字母都可以使用多次。

所以这

./script1.sh "qwertyuytresdftyuiokn"
Run Code Online (Sandbox Code Playgroud)

应该输出queenquestion而不是“抚慰”,因为“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)

然后我尝试将混乱变成一个数组,但又一次,我找不到在混乱中找到遵守顺序的单词的方法。

scripting bash shell-script

2
推荐指数
1
解决办法
380
查看次数

数学运算 - Bash 脚本

我正在尝试编写一个脚本(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)

bash array shell-script for

0
推荐指数
1
解决办法
291
查看次数

标签 统计

bash ×3

shell-script ×2

array ×1

awk ×1

cut ×1

for ×1

scripting ×1