回答
我已經找到了解決辦法,一點閱讀的TechNet後。我在最後使用powershell刪除沒有sufix的文件並保留較新的文件。我喜歡線上線,所以我想出了這個:
Remove-Item ((Get-ChildItem).FullName -match ".+\(2\).+" -replace "(.+)\s\(2\)(.+)",'$1$2')
我敢肯定這不是最好的解決方案,但它的工作。
Perl腳本:
#!/usr/bin/perl
use warnings;
use strict;
my $dir = shift;
for my $file (glob "$dir/*(2)") {
my $original = substr $file, 0, -3;
unlink $original if -f $original;
}
指定目錄名作爲參數。爲了說明,請參閱
感謝您的幫助choroba,最後我找到了一個更簡單的解決方案。我試着首先使用bcregrep從bash中得到類似的解決方案,但我無法用多個捕獲組替換匹配的字符串。 –
我低估了這個,因爲顯然有一個版本控制系統,真正的要求是將所有內容更新到最新版本。所以可能有一個'file(4)'和一個'file(6)',它的命運沒有人規定。我不認爲我們應該將問題作爲工作說明書,無論是本人還是提示需求。 – Borodin
名稱中沒有大於(2)的文件,在這種情況下將不再有文件。原始文件已損壞,並且帶有後綴的文件是正確的。 –
- 1. 文件腳本查找版本
- 2. TFS building Resx文件使用更高的.NET Framework版本
- 3. NoSuchMethod錯誤嘗試使用更高版本的JAR文件
- 4. 查找TextLayout組件的文本高度
- 5. 查找最新版本的文件夾
- 6. 編程下載使用Selenium文件(2.46版及更高版本)以下
- 7. 在Azure上找不到'Microsoft.SqlServer.Types'版本10或更高版本
- 8. Assembly'Microsoft.SqlServer.Types'版本10或更高版本無法找到
- 9. 使用ASP.NET查找COM DLL的文件版本
- 10. 查找Microsoft Windows Installer 3.1或更高版本
- 11. 使用PHP或Javascript檢查iOS版本是否爲3.0或更高版本
- 12. 檢查jQuery版本並加載並在需要時使用更高版本
- 13. TabHost不能使用更高版本的Android版本
- 14. Cassandra 3.0及更高版本需要Java 8u40或更高版本
- 15. 使用Xcode 6或更高版本或Application Loader 2.9.1或更高版本提交您的版本
- 16. 找到的最高版本
- 17. 使用SDK版本11或更高版本的Android主屏幕小部件僅
- 18. 使用ant在jar文件中查找java版本的類文件?
- 19. 使用dlopen查找dylib版本
- 20. 查找版本在項目中使用
- 21. 使用MFC查找Visual Studio版本
- 22. 使用powershell查找IIS版本
- 23. 使用grep查找版本號
- 24. 使用powershell查找文件名中編號最高的文件
- 25. 查找以前的更新版本
- 26. 查找angularjs版本
- 27. 版本查找表
- 28. 查找Struts版本?
- 29. 查找GCC版本
- 30. 版本更高到Spring2.0.6.jar
如果您似乎試圖自己寫一些東西,您將得到更好的答覆。你不應該要求你的工作是免費的。 – Borodin
對不起,我做了一些研究,但由於我對任何編碼或腳本編程都很陌生,而且我不是母語的人,所以我很滿意自己的問題。感謝您提高語法,但您刪除了正確的關鍵字。 –
我想你是在學習,如果你用英語盡力而爲,我們大多數人都會理解你。但是你應該閱讀Perl幾天,並嘗試一些你認爲可能有用的東西。你很容易寫一些你想學習的東西,但是你只問一個解決方案。 – Borodin