我知道,我可以使用:删除文本文件中的空行使用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