从文件名中删除模式

Fuv*_*uv8 5 unix rename

如何删除具有此结构的文件名列表中的"myfile"一词?

mywork_myfile_XSOP.txt
mywork_myfile_ATTY.txt
mywork_myfile_ATPY.txt
Run Code Online (Sandbox Code Playgroud)

Desired_output:

mywork_XSOP.txt
mywork_ATTY.txt
mywork_ATPY.txt    
Run Code Online (Sandbox Code Playgroud)

car*_*aug 7

最简单的方法是使用rename大多数Unices中可用的common 命令.

rename 's/^mywork_myfile_/mywork_/' *
Run Code Online (Sandbox Code Playgroud)

这当然要求您在文件的目录中.这不会覆盖文件.如果你想要,只需传递-f选项.此外,请注意,有多个版本rename可能有不同的选项.


fed*_*qui 5

基于此答案“重命名“将目录中的所有文件从 $filename_h 重命名为 $filename_half?”中的所有文件,这可以是一种方法:

for file in mywork_myfile*txt
do
   mv "$file" "${file/_myfile/}"
done
Run Code Online (Sandbox Code Playgroud)

请注意,它使用 bash 字符串操作,如下所示:

$ file="mywork_myfile_XSOP.txt"
$ echo ${file/_myfile/}
mywork_XSOP.txt
Run Code Online (Sandbox Code Playgroud)