ubuntu 循环以比较文件名中的数字

4uqofj5v  于 2022-11-02  发布在  其他
关注(0)|答案(1)|浏览(106)

所以我写了一个代码来比较文件名中的某个数字是否大于11,如果大于,它就应该创建一个目录。

-->Mainfolder
   -->Jan
      -->Huistaak1-HelloWorld_Jonas.De Preter.s.ua_poging_2019-11-12
   -->Feremans
      -->Huistaak1-HelloWorld_Len.Feremans.s.ua_poging_2019-11-10
   ...

代码需要获取所提供日期的日期,如果该日期大于11,则会创建一个目录“late_inzending”。因此,它应该如下所示

-->Mainfolder
   -->Jan
      -->Huistaak1-HelloWorld_Jonas.De Preter.s.ua_poging_2019-11-12
      -->late_inzending
   ...

我的代码似乎不起作用

for dir in */
do
    cut1=$(echo "$dir" | cut -f4 -d '_')
    cut2=$(echo "$cut1" | cut -f3 -d '-')
    declare -i x="$cut2"
    declare -i y=11
    if (( x > y))
    then
        mkdir late_inzending
    fi    
done
cvxl0en2

cvxl0en21#

差不多吧。


# !/usr/bin/env bash

for d in ./*/*/; do                   #: From main plus one level down
  [[ ! -d "$d" ]] && continue         #: If it is not a directory, skip it.
  end="${d##*-}"                      #: To remain only the last 2 strings and a /, e.g. 12/
  (( ${end%/} > 11 )) &&              #: Remove the trailing `/`, to remain only 12 and compare.
  echo mkdir -p "$d"late_inzending    #: Append the desired string to the directory and create it.
done
  • main内执行
  • 如果您对输出没有意见,请移除echo

以上答案的资源

相关问题