如何循环遍历目录并调整文件名

发布于 2024-11-26 01:56:58 字数 132 浏览 2 评论 0原文

我想编写一个循环遍历目录并更改文件名以包含 001_DTS(其中 DTS 是日期时间戳)、002_DTS、003_DTS 等的 ksh 脚本,

并删除 aa、ab 等,因为我想使用这与 split 函数(从该函数创建的文件)一起使用。

I want to write a ksh script that loops through a directory and changes the names of files to include a 001_DTS (where DTS is a date time stamp), 002_DTS, 003_DTS, etc

and remove the aa, ab, etc because I want to use this with the split function (the files created from that function).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

兰花执着 2024-12-03 01:56:58
prefix="x"   # the default 'split' prefix, change to suit yourself
count=1
dts=$(date +%Y%m%d%H%M%S)

for f in "$prefix"[a-z][a-z]; do
  mv "$f" "$(printf "%s%03d_%s" "$prefix" $count $dts)"
  (( count++ ))
done
prefix="x"   # the default 'split' prefix, change to suit yourself
count=1
dts=$(date +%Y%m%d%H%M%S)

for f in "$prefix"[a-z][a-z]; do
  mv "$f" "$(printf "%s%03d_%s" "$prefix" $count $dts)"
  (( count++ ))
done
话少心凉 2024-12-03 01:56:58

怎么样,不是 shell 特定的(ksh/bash)

cd /path/to/dir
for file in *
 do 
  mv $file ${file}_$(date +%Y%m%d%H%M%S) && echo "file moved" || echo "unable to move"
done

如果你想在循环之前修复 DTS 的值,只需像其他帖子一样分配变量即可。

how about this, not a shell specific (ksh/bash)

cd /path/to/dir
for file in *
 do 
  mv $file ${file}_$(date +%Y%m%d%H%M%S) && echo "file moved" || echo "unable to move"
done

If you want to fix the value of DTS before the loop just assign the variable like other posts.

↙厌世 2024-12-03 01:56:58

首先,运行 bash :-) 然后解决它:

bash # :-)
J=1
for I in * ; do
    mv -i $I `printf '%03d' $J`_DTS
    J=$((J+1))
done

first, run bash :-) and then solve it:

bash # :-)
J=1
for I in * ; do
    mv -i $I `printf '%03d' $J`_DTS
    J=$((J+1))
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文