我有大约 250 个文件名:
no_responseEvent_2002.02.07.03.15.56.970/
no_responseEvent_2002.02.10.01.47.07.450/
no_responseEvent_2002.02.13.14.18.46.00/
Run Code Online (Sandbox Code Playgroud)
我想从每个文件名中删除“no_response”。
我怎么做?
我知道 for 循环可以工作,但我对如何实现它感到困惑。
Ram*_*esh 16
我假设所有 250 个文件都在同一目录中并遵循相同的命名模式。如果是这样,你可以这样做,
for i in "$remove"*;do mv "$i" "${i#"$remove"}";done
Run Code Online (Sandbox Code Playgroud)
测试
ls
no_responseEvent_2002.02.07.03.15.56.970
no_responseEvent_2002.02.07.03.15.56.972
no_responseEvent_2002.02.07.03.15.56.971
no_responseEvent_2002.02.07.03.15.56.973
Run Code Online (Sandbox Code Playgroud)
现在,在我运行for
循环后,我得到的输出为,
remove=no_response
for i in "$remove"*;do mv "$i" "${i#"$remove"}";done
ls
Event_2002.02.07.03.15.56.970
Event_2002.02.07.03.15.56.971
Event_2002.02.07.03.15.56.972
Event_2002.02.07.03.15.56.973
Run Code Online (Sandbox Code Playgroud)
参考
http://www.commandlinefu.com/commands/view/2519/uniformly-correct-filenames-in-a-directory
归档时间: |
|
查看次数: |
15598 次 |
最近记录: |