linux - 无法在 Shell 脚本中重命名文件

标签 linux shell

我在这段代码中有什么地方做错了吗?

OLD_NAME="$FILE"
NEW_FILE=`${OLD_NAME | tr ' ' '_'}`
/bin/mv "$OLD_NAME" "$NEW_FILE"

我只想重命名提供的文件并用下划线替换所有空格。 我收到了 错误替换 错误消息。我似乎无法让重命名工作:-(

如有任何帮助,我们将不胜感激。

最佳答案

您需要将 OLD_NAME 回显到 tr:

OLD_NAME="$FILE"
NEW_FILE="$( echo "$OLD_NAME" | tr ' ' '_' )"
/bin/mv "$OLD_NAME" "$NEW_FILE"

但也许你更喜欢:

NEW_FILE=${OLD_NAME// /_}

关于linux - 无法在 Shell 脚本中重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13384375/

相关文章:

linux - 使用 ARM 模板设置 Linux 诊断扩展

shell - 提取其中一列中的值等于另一列中的值 +1 的行?

regex - 如何从字符串中删除单引号等特殊字符?

linux - 在 Linux 中使用时清空文件

linux - 编写 shell 脚本将目录中最旧的文件移动到新目录。?

ios - mac 应用程序命令行工具上的应用程序传输策略

我们可以在调用 pthread-create() 函数之前定义一个变量吗

linux - 如何将来自 ASP.NET Core 应用程序的消息记录到 Linux 上的特定文件?

c++ - X11 上的编辑框

linux - 通过 ssh/scp 将 linux 和 solaris 文件与本地 Windows 文件进行比较