Linux 更新文件名最后一个字符的Shell脚本
我在目录和子目录中有文件,文件名应该更改,最后一个字符应该替换为数字或字符,具体取决于提供的参数。我可以为数字而做,但不能为角色而做 例如,如果文件名为Linux 更新文件名最后一个字符的Shell脚本,linux,shell,unix,Linux,Shell,Unix,我在目录和子目录中有文件,文件名应该更改,最后一个字符应该替换为数字或字符,具体取决于提供的参数。我可以为数字而做,但不能为角色而做 例如,如果文件名为20170504abcdxxxyy6.xml或20170504cflfxxxyy6.cfl.bz2 如果我编写命令/updateLastCharacter 5,文件名应该是20170504abcdxxxyy5.xml或20170504CFLFXXXYYY5.cfl.bz2 如果命令为/updateLastCharacter A,则文件名应为201
20170504abcdxxxyy6.xml
或20170504cflfxxxyy6.cfl.bz2
如果我编写命令/updateLastCharacter 5
,文件名应该是20170504abcdxxxyy5.xml
或20170504CFLFXXXYYY5.cfl.bz2
如果命令为/updateLastCharacter A
,则文件名应为20170504ABCDXXXYYYA.xml
或20170504CFLFXXXYYYA.cfl.bz2
我不熟悉shell脚本。我为实现这一目标做了很多努力,但我能做的是:
find $directory -exec rename "s/[0-9].xml/$newNumber.xml/;s/[0-9].cfl/$newRevisionNumber.cfl/" {} ";"
这对数字很好,但我正在寻找如何使用单行命令对字符执行此操作。使用
重命名
的简单解决方案(perl函数)
find.|重命名-n-v's/[A-Za-z0-9](?=\)/5/'
-n
表示不采取任何行动-v
表示屏幕上的冗长
您可以直接使用程序实用工具,,它比Perl中的重命名功能更强大。
我自己写的程序,因为我需要很多重命名或删除文件
一个带有
重命名的简单解决方案(perl函数)
find.|重命名-n-v's/[A-Za-z0-9](?=\)/5/'
-n
表示不采取任何行动
-v
表示屏幕上的冗长
您可以直接使用程序实用工具,,它比Perl中的重命名功能更强大。
我自己写的程序,因为我需要很多重命名或删除文件
中的字符您要搜索A-Z和A-Z,对吗?中的字符您要搜索A-Z和A-Z,对吗?