如果在powershell中为空,则删除文件中的一行

时间:2011-12-30 14:15:49

标签: powershell powershell-v2.0

如何删除文件中的空行?

当我搜索它时,人们正在创建另一个文件来移动非空行,如下所示

gc c:\FileWithEmptyLines.txt | where {$_ -ne ""} > c:\FileWithNoEmptyLines.txt

有没有办法删除源文件本身的行?

2 个答案:

答案 0 :(得分:4)

为什么不能将它保存回同一个文件?将其分为两行:

$var = gc c:\PST\1.txt | Where {$_ -ne ""}
$var > c:\pst\1.txt

答案 1 :(得分:3)

跳过与空格,制表符或换行符匹配的行:

(Get-Content c:\FileWithEmptyLines.txt) | `
  Where-Object {$_ -match '\S'} | `
   Out-File c:\FileWithEmptyLines.txt

更新:对于多个文件:

$file = Get-ChildItem -Path "E:\copyforbuild*xcopy.txt" 

foreach ($f in $file)
{ 
    (Get-Content $f.FullName) | `
      Where-Object {$_ -match '\S'} | `
       Out-File $f.FullName
}