如何使用shell脚本重命名文件?

时间:2014-11-02 06:39:13

标签: shell unix

我有这样命名的文件:

  • 2014-8-1.txt
  • 2014-08-02.txt
  • 2014-9-03.txt
  • 2014-09-4.txt

如何将这些文件重命名为以下名称? (' - '连字符将替换为' _'下划线。)

  • 2014_8_1.txt
  • 2014_08_02.txt
  • 2014_9_03.txt
  • 2014_09_4.txt

2 个答案:

答案 0 :(得分:0)

试试这个:

mv `ls *-*.txt` `ls *-*.txt | sed 's/-/_/g'`

mv - 重命名文件
ls with wildcard - 将列出所有文件" - "在它中 sed - 将在文件名中搜索 - 并将其替换为_任意数量的出现。

答案 1 :(得分:0)

您可以使用此find

find . -type f -name [0-9]*-[0-9]*-[0-9]*.txt -print0 | xargs -0 -I {} bash -c 'f="{}"; echo mv "$f" "${f//-/_}"'