string - bash文件重命名在特定位置添加字符串

标签 string bash unix

我想重命名多个文件,但不仅仅是将字符串附加到文件的末尾或开头。我想把它放在一个特定的位置。这是我现在正在使用的命令,但它只能在文件名的开头和结尾添加内容。

for f in `ls  ~/tmp/*`; do FILE=`basename $f`; echo "Rename:"$f;echo $FILE; mv "$f" "/home/tmp/JC_"${FILE%.*}"_hg19."${FILE#*.}"";  done

假设文件名如下 hell_1.txt (假设有很多文件,为简单起见,每个文件都有不同的编号)我想添加一个 o 到文件名中,这样生成的名称将是 hello_1.txt 如果您有一个不仅仅针对此示例的通用解决方案,那就太好了。

最佳答案

这应该有效:

for x in ~/tmp/*.txt; do mv $x `echo $x | sed -e 's#hell#hello#'`; done

关于string - bash文件重命名在特定位置添加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657393/

相关文章:

excel - 计算超过 255 个字符的函数 - Excel/VBA

php - 如何检查字符串是否只包含 1 个相同的数字

java - 如何在 Windows 10 环境中从 Java 运行在 Ubuntu 上用 Bash 编写的 shell 脚本?

php - 在 bash 中生成 php 类

linux - 在哪里/如何在 *nix 命令行实用程序中保存首选项文件?

c++ - 指向 char 数组的整数指针

linux - 在 cat 文件的输出中打印单词 echo

linux - 从 shell 脚本传递日期到查询

unix - 在 UNIX 中查找并更改文本值中的值

java - 为什么这段代码会出现运行时错误?