
我需要重命名以下文件。我只想刪除.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-*
模式相符。