【问题标题】:Renaming part for file using mv command in shell script在 shell 脚本中使用 mv 命令重命名文件的部分
【发布时间】:2014-04-28 08:56:38
【问题描述】:

我想在 shell 脚本中使用 mv 命令重命名文件
现在文件格式为foo-<date>.tar.gz 我想将其重命名为foo1-<date>.tar.gz.
我试过了,剪切 foo 并重命名它并连接,除了我想要一些非常简单的东西之外的所有内容
mv foo*.tar.gz foo1*.tar.gz
日期应该只维护 foo 应该改变 foo1 可能吗 ?如果是怎么办?

提前谢谢你!

【问题讨论】:

  • 这有点不同我不想更改完整的基本名称,我只想更改基本名称的一部分,并且基本名称的第二部分是日期,它不是恒定的(即它不是固定的字符串像“java”)。谢谢你的回复。
  • 是的,我明白了,但基本上你需要使用正则表达式......无论如何都是一个正确的问题,你得到了答案:)

标签: linux shell busybox


【解决方案1】:

您可以使用 BASH 字符串操作:

f='foo-12APR2014.tar.gz'
nf="foo1-${f#*-}"

测试:

echo "$nf"
foo1-12APR2014.tar.gz

PS:如果不使用 BASH,则可以使用 sed:

nf=`echo "$f"|sed 's/^foo/foo1/'`

【讨论】:

  • 它们都适用于 bash 和 busybox shell 非常感谢 anubhava 闪电般的快速响应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2019-09-02
  • 2017-04-13
  • 2019-10-02
  • 2013-08-27
  • 2012-12-07
  • 1970-01-01
相关资源
最近更新 更多