【问题标题】:How do I edit file name that same first word [duplicate]如何编辑相同的第一个单词的文件名[重复]
【发布时间】:2015-01-07 17:02:28
【问题描述】:

我有这样的日志文件:

tmp_1_2_3_4_5.LOG
...

我需要像这样更改名称:

1_2_3_4_5.LOG

我试试:

rename 's/^tmp+_//' *

它适用于 Debian,但不适用于 Red Hat。 如何使用 mv 命令执行此操作?

【问题讨论】:

  • 试试看:rename 's/^tmp_//' *.LOG
  • anubhava,不工作。
  • Red Hat 上的重命名命令是否不同?它适用于 Debian,但不适用于 Red Hat。如果我不能用重命名来做到这一点,我怎么能用其他命令做到这一点? sed 或 mv 等...我需要一个行命令。

标签: bash


【解决方案1】:

你可以用一个相当简单的for循环来做到这一点:

for file in tmp_*; do
    [[ -e $file ]] || continue
    mv "$file" "./${file#tmp_}"
done

另见BashFAQ #30

【讨论】:

    【解决方案2】:

    你可以试试这个,用 mv :

    for i in *; do s=$(sed -r 's/^(tmp_)(.*.LOG)/\2/' <<< $i); if [[ "$i" != "$s" ]]; then mv "$i" "$s"; fi; done;
    

    【讨论】:

    • 它适用于所有文件,而不仅仅是 tmp_xxx_xxx.LOG。并对其他文件说:mv xx_xx.LOG 和 xx_xx.LOG 是同一个文件。
    • 你可以忽略,否则我已经编辑了我的答案...
    猜你喜欢
    • 2015-10-31
    • 2018-08-03
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    相关资源
    最近更新 更多