我知道,我可以使用:刪除文本文件中的空行使用PowerShell
gc c:\FileWithEmptyLines.txt | where {$_ -ne ""} > c:\FileWithNoEmptyLines.txt
刪除空行。但我怎樣才能用'-replace'去除它們?
我知道,我可以使用:刪除文本文件中的空行使用PowerShell
gc c:\FileWithEmptyLines.txt | where {$_ -ne ""} > c:\FileWithNoEmptyLines.txt
刪除空行。但我怎樣才能用'-replace'去除它們?
你不能做替換,你必須用SOMETHING替代SOMETHING,而你兩者都沒有。
這將刪除只有空格字符(製表符/空格)的空行或行。
[IO.File]::ReadAllText("FileWithEmptyLines.txt") -replace '\s+\r\n+', "`r`n" | Out-File "c:\FileWithNoEmptyLines.txt"
您可以改用-match當量,如果你也想排除只包含空格字符的文件:
@(gc c:\FileWithEmptyLines.txt) -match '\S' | out-file c:\FileWithNoEmptyLines
我發現這裏一個很好的一個襯墊>>http://www.pixelchef.net/remove-empty-lines-file-powershell。只用幾條空白行進行測試,包括只包含換行符,以及只包含空格,只是製表符和組合的行。
(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt
請參閱原始有關代碼的一些說明。尼斯:)
我認爲我更喜歡'(gc file.txt)| ? {-not $ _。IsNullOrWhiteSpace()} | set-content file.txt「,因爲它更清楚地表達了意圖,但它相當於同樣的事情。 – 2014-10-20 11:42:31
簡短的一瞥,我似乎沒有在我的字符串上的「IsNullOrWhiteSpace()」方法......並且......實例方法如何檢查null?發佈的答案很好,但! – xdhmoore 2017-01-15 19:39:21
IsNullOrWhiteSpace是System.String對象的靜態方法,在PowerShell中調用它的正確方法如下:'[String] :: IsNullOrWhiteSpace({你的字符串})''。基於Neil Barnwell的正確命令行註釋如下: '(gc file.txt)| ? {-not [String] :: IsNullOrWhiteSpace($ _)} |設置內容file.txt' – LMA1980 2018-02-14 17:23:39
(Get-Content c:\FileWithEmptyLines.txt) |
Foreach { $_ -Replace "Old content", " New content" } |
Set-Content c:\FileWithEmptyLines.txt;
聚苯乙烯:我知道這是在一天的舊時間,但其他一些人也可能會受益。 – Nonso 2013-11-12 07:43:30
這消除了尾部的空格和空行,從file.txt的
PS C:\Users\> (gc file.txt) | Foreach {$_.TrimEnd()} | where {$_ -ne ""} | Set-Content file.txt
未進行具體使用-replace
,但你得到同樣的效果解析使用-notmatch
和正則表達式的內容。
(get-content 'c:\FileWithEmptyLines.txt') -notmatch '^\s*$' > c:\FileWithNoEmptyLines.txt
這片蘭迪Skretka代碼工作爲我好,但我有問題,我仍然有一個換行符在文件的結尾。
(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt
所以我最後加入這樣的:
$content = [System.IO.File]::ReadAllText("file.txt")
$content = $content.Trim()
[System.IO.File]::WriteAllText("file.txt", $content)
如果你真的要過濾從文件中的空行,那麼你可以試試這個:
(GC $ source_file).Trim()| ? {$ _。Length -gt 0}
你爲什麼要替換?並處理您的接受率 – manojlds 2012-02-10 06:09:02
我的答案用'-replace' [比較運算符]刪除空行(http://technet.microsoft.com/zh-cn/library/dd315321.aspx)。 'Get-Content'沒有替換參數,所以我假設你正在尋找一種方法來和操作符一起做。 – 2012-02-10 07:47:16