gpt4 book ai didi

linux - 检查数字中的位数

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:10 25 4
gpt4 key购买 nike

我的文件包含数字。我必须循环检查文件中的每个数字是否由 11 位数字组成。 如果找到的数字少于/多于 11 位,则应将该数字写入输出文件。

这是我的尝试:

number="$(< all_numbers.txt)"
for numbers in $number ;
do
if [${#numbers} == 11];
then
echo $numbers = "${#numbers}" > num.txt;
fi;
done;

当我运行我的代码时,出现以下错误:

-bash: [11: command not found

最佳答案

Unix 使用-eq 来比较数字。 “==”用于字符串。而且我认为您可以避免使用大多数分号。

所以你的脚本应该是:

number="$(< all_numbers.txt)"
for numbers in $number
do
if [ ${#numbers} -eq 11 ]; then
echo $numbers = "${#numbers}" > num.txt
fi
done

Update

如果您需要不等于(大于或小于)11 的元素,只需将条件更改为 [ ${#numbers} -ne 11 ]


Update 2: Adding additional checks:

number="$(< all_numbers.txt)"
for numbers in $number
do
if [[ ! ${#numbers} =~ ^93 ]] ; then
echo $numbers = "${#numbers}" > num93.txt
fi
if [ ${#numbers} -ne 11 ]; then
echo $numbers = "${#numbers}" > num.txt
fi
done

希望这对您有所帮助!

关于linux - 检查数字中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41933497/

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