如何通过替换文件名中的字符串来重命名多个文件?该字符串包含“#”

莱昂·弗朗西斯·谢勒哈默(Leon Francis Shelhamer)

https://serverfault.com/questions/70939/how-to-replace-a-text-string-in-multiple-files-in-linux

https://serverfault.com/questions/228733/how-to-rename-multiple-files-by-replacing-word-in-file-name

https://serverfault.com/questions/212153/replace-string-in-files-with-certain-file-extension

https://serverfault.com/questions/33158/searching-a-number-of-files-for-a-string-in-linux

这些提到的文章都回答了我的问题。但是他们都没有为我工作。我怀疑是因为我要替换的字符串中包含#。是否有解决此问题的特殊方法?

我有一个映像文件,它在站点迁移期间将é替换为#U00a9。这些看起来像这样:

Lucky-#U00a9NBC-80x60.jpg
Lucky-#U00a9NBC-125x125.jpg
Lucky-#U00a9NBC-150x150.jpg
Lucky-#U00a9NBC-250x250.jpg
Lucky-#U00a9NBC-282x232.jpg
Lucky-#U00a9NBC-300x150.jpg
Lucky-#U00a9NBC-300x200.jpg
Lucky-#U00a9NBC-300x250.jpg
Lucky-#U00a9NBC-360x240.jpg
Lucky-#U00a9NBC-400x250.jpg
Lucky-#U00a9NBC-430x270.jpg
Lucky-#U00a9NBC-480x240.jpg
Lucky-#U00a9NBC-600x240.jpg
Lucky-#U00a9NBC-600x250.jpg
Lucky-#U00a9NBC.jpg

我想将其更改为以下内容:

Lucky-safeNBC-80x60.jpg
Lucky-safeNBC-125x125.jpg
Lucky-safeNBC-150x150.jpg
Lucky-safeNBC-250x250.jpg
Lucky-safeNBC-282x232.jpg
Lucky-safeNBC-300x150.jpg
Lucky-safeNBC-300x200.jpg
Lucky-safeNBC-300x250.jpg
Lucky-safeNBC-360x240.jpg
Lucky-safeNBC-400x250.jpg
Lucky-safeNBC-430x270.jpg
Lucky-safeNBC-480x240.jpg
Lucky-safeNBC-600x240.jpg
Lucky-safeNBC-600x250.jpg
Lucky-safeNBC.jpg

更新:

这些示例都以“ LU00a9ucky”开头,但是这里有许多名称不同的图像。我只是将字符串的“#U00a9”部分定位为“ safe”。

DTK

这并不难,只需确保通过在名称前加上反斜杠(\)来使名称中的八字形(#)转义即可。

find . -type f -name 'Lucky-*' | while read FILE ; do
    newfile="$(echo ${FILE} |sed -e 's/\\#U00a9/safe/')" ;
    mv "${FILE}" "${newfile}" ;
done 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过交换文件名中的子字符串来批量重命名文件?

如何匹配文件名中的字符串并根据字符串重命名文件?

通过将中间字符串移动到文件名末尾来重命名文件

通过重新格式化文件名中嵌入的日期字符串来重命名文件

通过将字符串从文件名的后面移动到前面来重命名文件名

了解批处理文件中的for循环以通过替换字符串来重命名文件

如何通过在文件开头添加公用字符串来重命名多个文件?

如何使用 Ubuntu“重命名”工具替换目录名和文件名中的字符串?

批处理文件重命名脚本交换文件名中的子字符串?

如何将文件重命名为文件名中的子字符串?

如何使用哈希中的字符串值重命名文件名?

如何通过移动/替换字符并在文件名中转换日期格式来重命名bash中的多个文件?

尝试重命名文件夹中的文件(基于文件名中的字符串)

通过子字符串文件名批量重命名文件

批处理:用循环替换文件和文件名中的字符串

查找文件名中包含空格和特定字符串的文件,并将其重命名

搜索并替换文件名中的字符串,而不会影响包含相同字符串的文件夹名称

替换文件中的字符串

替换文件中的字符串

在Unix中替换文件名中的字符串

Linux命令替换文件名中的字符串(单个)

我想重命名Node.js中多个文件名中的特定字符串

如何仅在名称包含某些字符串的某些文件夹下替换文件中的字符串

重命名shellscript子字符串中的文件名

在 Groovy 中如何替换文件中的字符串?

如何在Linux中通过将文件中包含的字符串与包含它的文件名相关联来提取字符串

如何使用gulp替换文件中的字符串?

如何搜索和替换文件中的字符串

如何替换文件中的字符串?