我需要重命名以下文件。我只想删除.job-209675
以 开头的文件名SOA
,但保持原始文件名完整,因为该目录中还有其他文件
例如
之前:./SOA_990377897NW0001_1557340549734.xml.job-2074645
之后:./SOA_990377897NW0001_1557340549734.xml
答案1
如果变量filename
包含其中一个文件的名称,则${filename%.job-*}
该名称将在最后一个点之后不带位。
要循环文件名,依次重命名每个文件,
for filename in SOA_*.job-*; do
echo mv -i "$filename" "${filename%.job-*}"
done
这echo
是为了保护。您应该运行一次循环并检查输出,echo
如果您认为正确,则删除 。该-i
选项mv
使其在覆盖现有文件之前要求确认。
这假设所有相关文件(而不是其他文件)都与该SOA_*.job-*
模式匹配。