首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别目录中修改过的文件名?

如何识别目录中修改过的文件名?
EN

Stack Overflow用户
提问于 2020-11-24 18:27:36
回答 1查看 80关注 0票数 0

我在一个目录中有以下四个文件:

代码语言:javascript
复制
TRAILBLAZER_107-10016_FTP_SCR_CT_CTAC
TRAILBLAZER_107-10016_FTP_SCR_CT_Recon
TRAILBLAZER_107-10016_FTP_SCR_PET_NAC
TRAILBLAZER_107-10016_FTP_SCR_PET_AC_Frames

我做了一个简单的for循环,可以遍历每个文件,并根据名称中的某个关键字更改文件名。这实际上只是更改了下面两个文件的名称:

代码语言:javascript
复制
for file in TRAILBLAZER*
   do
      mv "$file" "${file/PET_AC/PET_TESTAC}"
      mv "$file" "${file/PET_NAC/TESTNAC}"
   done

我如何能够回显被for循环更改的文件数量,以及目录中保持不变的文件数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-24 19:01:11

参数展开(带有子字符串替换)不返回任何值,以让您知道它是否成功或失败。您需要手动完成此操作。修改文件名之前先保存文件名,然后检查文件在修改后是否存在。如果没有,则会进行更改,从而增加一个计数器。

您可以做类似的事情:

代码语言:javascript
复制
changed=0                                      ## counter

for file in TRAILBLAZER*
do
    fname="$file"                              ## save original file name
    
    mv "$file" "${file/PET_AC/PET_TESTAC}"
    mv "$file" "${file/PET_NAC/TESTNAC}"
    
    [ -f "$fname" ] || ((changed++))           ## original exists or increment counter
done

printf "files changed: %s\n", "$changed"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64992649

复制
相关文章

相似问题

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