我想查找包含特定字符串的特定目錄中的所有文件。具體來說,我想查找回車(\ r),然後手動遍歷文件並刪除它的出現。我不希望PowerShell刪除它們,因爲在我的目錄結構中可能有某些子目錄需要它們。遞歸查找文件中的文本(PowerShell)
1
A
回答
1
你的問題似乎歸結爲:我想找到包含回車的目錄中的所有文件。有沒有任何理由爲什麼這些answers不夠?
例如:
這應該給包含您的模式文件的位置:
Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name
0
你可以使用Select-String
中尋找模式的一組文件中,但是這隻會搜索每行文本中的模式。它不適用於你的情況,因爲你想搜索行分隔符。
更簡單的方法是使用Get-Content
,這將文件轉換爲字符串數組,每行一個項目。因此,任何具有返回和換行符的文件都將生成一個包含多個項目的數組。嘗試是這樣的:
Get-ChildItem -recurse | ? {(Get-Content $_.FullName).count -gt 1}
如果您的文件非常大,要加快步伐再加入-TotalCount
這樣的:
Get-ChildItem -recurse | ? {(Get-Content $_.FullName -TotalCount 2).count -gt 1}
這隻會尋找到符和換行符是在一起,如果你想要他們可以自己出現的實例,那麼你將需要強制Get-Conent
不要將該文件作爲一個字符串數組讀取,而是將一個大字符串讀取。這樣的事情:
Get-ChildItem -recurse | ? {[regex]::Matches((Get-Content $_FullName -Raw), '[\r\n]+').Count -gt 0}
相關問題
- 1. 遞歸地查找目錄中的文本文件的計數
- 2. 如何在Perl腳本中遞歸查找文件/文件夾?
- 3. 遞歸查找目錄中的所有文本文件
- 4. 在jsTestDriver中遞歸地查找文件
- 5. Powershell防止父文件夾的遞歸查找只搜索子文件夾
- 6. Powershell腳本遞歸搜索和找到文件大小差異
- 7. 在PowerShell中遞歸重命名文件
- 8. 查找文件夾中的所有.php文件遞歸
- 9. 使用靜態遞歸查找文件
- 10. 遞歸查找和替換文件
- 11. PowerShell的:移動文件遞歸
- 12. Perl,遞歸查找並從文本文件中的列表中替換?
- 13. shell腳本:遞歸查找包含關鍵字的文件
- 14. 使用PowerShell遞歸刪除文件
- 15. 用Powershell遞歸文件系統
- 16. 在PowerShell中打印遞歸文件和文件夾計數?
- 17. 尋找使用Powershell從目錄(遞歸)查找和複製文件(使用特定的文件ext)?
- 18. 遞歸查找文件夾名稱(不是文件)
- 19. PowerShell腳本歸檔許多子文件夾中的文件
- 20. PowerShell逐個查找文件
- 21. PowerShell查找最新文件
- 22. Powershell腳本查找特定的文件/文件名?
- 23. 在Powershell中查找文件副本的腳本
- 24. PowerShell腳本來壓縮多個文件夾內的文件遞歸
- 25. 使用Powershell使用查找文件遞歸地重命名目錄
- 26. 遞歸查找目錄中文件的數量
- 27. 在目錄中查找最舊的文件(遞歸)
- 28. 尋找一個PowerShell腳本來遞歸比較兩個文件夾
- 29. 遞歸文件複製期間powershell錯誤檢查
- 30. Mongoid遞歸查找嵌入式文檔
我試圖模式化「\ n」和 - 模式「\ r」但沒有返回。出於某種原因 - 模式「\ t」返回的文件。 – user8056359