【问题标题】:how to rename all file name which contain specific word to another word in a folder using bat or shell script如何使用bat或shell脚本将包含特定单词的所有文件名重命名为文件夹中的另一个单词
【发布时间】:2010-12-20 10:17:21
【问题描述】:

如何编写批处理脚本或shell脚本来重命名文件夹中的文件

ie ..将所有文件名中的名称 arun_XYZ 替换为 arun_ABC(将 xyz 替换为 abc)

以及如何用单词 ABC 替换所有文件中出现的单词 XYZ

【问题讨论】:

    标签: shell batch-file


    【解决方案1】:

    壳牌:

    重命名文件:

    for fname in *_XYZ; do
       newname=`echo "$fname" | sed 's/_XYZ/_ABC/g'`
       echo "$fname" "$newname"
    done
    

    测试后将echo $fname... 替换为mv $fname...

    要重命名图块并替换文件内容:

    for fname in *_XYZ; do
       newname=`echo "$fname" | sed 's/_XYZ/_ABC/g'`
       sed 's/XYZ/ABC/g' "$fname" >"$newname"
    done
    

    【讨论】:

    • 我无法替换内容,只有文件名被替换了
    • @Arunachalam 它会生成具有新名称和相同内容的文件?
    • 是的,它会生成具有新名称和相同内容的文件
    • @Arunachalam 您可以尝试手动为一个文件执行sed 's/XYZ/ABC/g' file >newfile 以查看发生了什么。
    【解决方案2】:

    由于这个问题有“dos-batch”标签,我认为 Arunachalam 需要一个 dos 解决方案,而不是 bash 解决方案。

    你问了两个完全不同的问题。

    1. 要重命名文件名,您可以查看 batch-script-to-rename-files-how-to-change-file-extensions

    2. 要更改文件内容,您可以阅读Batch Substitute

    【讨论】:

      猜你喜欢
      • 2023-01-08
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      相关资源
      最近更新 更多