如何删除具有此结构的文件名列表中的"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)
最简单的方法是使用rename大多数Unices中可用的common 命令.
rename 's/^mywork_myfile_/mywork_/' *
Run Code Online (Sandbox Code Playgroud)
这当然要求您在文件的目录中.这不会覆盖文件.如果你想要,只需传递-f选项.此外,请注意,有多个版本rename可能有不同的选项.
基于此答案“重命名“将目录中的所有文件从 $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)