【问题标题】:bash : change part of filename to lowercasebash : 将文件名的一部分更改为小写
【发布时间】:2021-06-02 21:14:06
【问题描述】:

我需要重命名一个文件列表,将任何文件扩展名更改为小写: 即:从My_TEST.ONE.two.Three.fOuR.FIveMy_TEST.one.two.three.four.five

目前我找到的方法是这个

#!/bin/bash

sourcefilename="My_TEST.ONE.two.Three.fOuR.FIve"
newfilename=""
for word in $(echo $sourcefilename | tr '.' '\n'); do
        if [ -z "$newfilename" ]; then
                newfilename="$word"
        else
                newfilename="$newfilename.$(echo $word | tr [:upper:] [:lower:])"
        fi
done

有没有更好(也许更优雅)的方法?

【问题讨论】:

    标签: bash replace file-rename uppercase lowercase


    【解决方案1】:

    使用bash Parameter Expansion 功能。

    fileName='My_TEST.ONE.two.Three.fOuR.FIve'
    first="${fileName%%.*}"
    rest="${fileName#*.}"
    echo mv -v "${fileName}" "${first}.${rest,,[A-Z]}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2014-02-02
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      相关资源
      最近更新 更多