BASH-删除指定字符之前的所有内容(要在Windows上运行的脚本)

BASH-删除指定字符之前的所有内容(要在Windows上运行的脚本),bash,batch-rename,Bash,Batch Rename,我的文件夹中有很多文件,格式如下: Node0123_RL2581_GS2001.jpg 我想删除“RL”之前的所有内容,因此将: RL2581_GS2001.jpg 请注意,“RL”前面的字符数在8到9个字符之间变化 谢谢你的建议!:) bash解决方案: for f in *_RL*.jpg; do mv "$f" "RL${f#*_RL}"; done ${f#*RL}-截断字符串(文件名)的左侧部分,直到遇到RL(包括) bash解决方案: for f in *_RL*.jpg;

我的文件夹中有很多文件,格式如下:

Node0123_RL2581_GS2001.jpg

我想删除“RL”之前的所有内容,因此将:

RL2581_GS2001.jpg

请注意,“RL”前面的字符数在8到9个字符之间变化


谢谢你的建议!:)

bash
解决方案:

for f in *_RL*.jpg; do mv "$f" "RL${f#*_RL}"; done

  • ${f#*RL}
    -截断字符串(文件名)的左侧部分,直到遇到
    RL
    (包括)

    • bash
      解决方案:

      for f in *_RL*.jpg; do mv "$f" "RL${f#*_RL}"; done
      

      • ${f#*RL}
        -截断字符串(文件名)的左侧部分,直到遇到
        RL
        (包括)

      我认为我做错了什么,因为它不工作:/echo off setLocal EnableDelayedExpansion cd/D C:\Users\A\Desktop\A\u tests\for f in\u RL.jpg;做mv“$f”RL${f#*_RL}”;什么事都不会发生…:(您好!非常感谢您的帮助!这是一个版本问题,因为它似乎在PC上工作得很好。这个脚本实际上将被使用!)我想我做错了,因为它不工作:/echo off setLocal EnableDelayedExpansion cd/D C:\Users\a\Desktop\a_tests\for f in_RL.jpg;做mv“$f”RL${f#*_RL}”;什么事都不会发生…:(您好!非常感谢您的帮助!这是一个版本问题,因为它在PC上似乎工作得很好。实际上将使用此脚本!)