首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较09与11

如何比较09与11
EN

Unix & Linux用户
提问于 2022-11-01 21:03:07
回答 1查看 48关注 0票数 1

所以我有一个代码,它接受文件名的一部分,它是日期格式的,并检查这个数字是否大于11。所有的文件都遵循相同的命名主体,只有不同的名称和日期。->示例:

Huistaak1-HelloWorld_Jonas.De Preter.s.ua_poging_2019-11-12 (注意:该文件名是一个目录)

下面是我的代码,它接受最后两个数字,并将它们与11进行比较,如果数字高于它,则创建一个目录:

代码语言:javascript
复制
for d in ./*/*/; do
  [[ ! -d "$d" ]] && continue
  char=${d: -3}
  (( ${char%/} > 11 )) &&
  mkdir -p "$d"late_inzending
done

我得到的问题是,当日期小于10时,它会将09和11进行比较。

09 > 11 -> 'utf-8‘编解码器无法解码位置为679的字节0xc8 :无效的连续字节

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-11-01 21:45:40

我简单地使用sed修复了它。

代码语言:javascript
复制
#the string which I'm working with:
#Huistaak1-HelloWorld_Jolien.Peters.s.ua_poging_2019-11-12

for d in ./*/*/; do
  char=${d: -3} #:Variable to get the last 2 numbers in this string(12/)
  x=${char%/} #:Variable to remove the invisible "/"
  y=$(echo $x | sed 's/^0*//')#:Incase there are leading zeros remove them
  echo $y
  (( "$y" > 11 )) && #Compare the numbers and if $y is bigger then make new directory
  mkdir -p "$d"late_inzending
done
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/723299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档