目录( /root/path/ )中的许多文件都附加了一个奇怪的string( #015 )。 帮我把它们replace成没有奇怪string的常规名字。
我需要:
/root/path/img1.png#015 /root/path/img2.jpg /root/path/img3.png#015
成为:
/root/path/img1.png /root/path/img2.jpg /root/path/img3.png
你能帮我吗?
想要一个实现了“@include”的AWK
如何将文本文件转换为matrix?
bash合并文件中的行
将文件和pipe道分组到awk命令
正则expression式引擎位于哪里?
如何在使用sed的string匹配后追加带有美元符号的variables?
Shell脚本linux减去参数grep
使用awkreplace正则expression式模式
for file in *#015 do mv -- "$file" "${file%#015}" done
您可能需要转义“”。 先在tmp目录下试试。
如果你已经安装了rename ,这将变成一个相当简单的任务:
rename 's/\#015$//' /root/path/*\#015
cd /root/path/ ls | grep '#015' | sed 's/(.*)\#015/mv & 1/' | sh
您可以通过find和参数替换来完成,如下所示:
#!/bin/bash find -name '*\#015' | while IFS= read -rf do mv -- "${f}" "${f%?????}" done
把上面的代码放到你的/root/path/一个名为my_script.sh的脚本中,然后通过chmod +x my_script.sh && ./my_script.sh运行它
请注意,这会将递归更改应用于/root/path/下的所有子文件夹。
说明:
find -name '*\#015' :找到所有以#015结尾的文件
然后找到每个这样的文件: mv "${f}" "${f%?????}"将其从旧名称重命名为新名称,并删除文件名中的最后5个字符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。