我在尝试替换一个非常大的文件(约8gb)中的字符串时遇到问题。为此我使用PowerShell。 我试图替换的字符串如下:
(作为评论,有一个“介绍”,然后字符串是它看到的) 我想用以下内容替换它: “” (作为评论,什么都没有)
目前正在使用的Shell如下:
$InFile = 'foo.txt'
$OutFile = 'foo2.txt'
filter filter replace-chars { $_ -replace '
'"'||ROW_ID||'","'||SUBSTR(P.ADDR_NAME,INSTR(P.ADDR_NAME,'')+1)||'"'
--------------------------------------------------------------------------------','' }
if (test-path $OutFile)
{ Clear-Content $OutFile }
Get-Content $InFile -ReadCount 1000 |
replace-chars |
Add-Content $OutFile
我收到以下错误:
” +过滤器过滤器替换字符{$ _ -replace' +〜函数声明中缺少函数体。在F:\ Reporte_medios_de_contacto_PROD \ test.ps1:7 char:2 +'“'|| ROW_ID ||'”,“'|| SUBSTR(P.ADDR_NAME,INSTR(P.ADDR_NAME,'')+ 1)||'”' + ~~~~~~~~~~~~~~表达式或语句中出现意外的标记'“||| ROW_ID ||'”'。在F:\ Reporte_medios_de_contacto_PROD \ test.ps1:7 char:68 +'“'|| ROW_ID ||'”,“'|| SUBSTR(P.ADDR_NAME,INSTR(P.ADDR_NAME,'')+ 1)||'”' +〜意外的令牌'' -------------------------------------------------- ------------------------------''在表达或陈述中。 + CategoryInfo:ParserError:(:) [],ParseException + FullyQualifiedErrorId:MissingFunctionBody“
答案 0 :(得分:1)
使用强大的计算机(16 gb ram)和EmEditor解决。
答案 1 :(得分:0)
(Get-Content c:/YourFile.txt) -replace 'What you want to remove', 'what you `
want to replace it with' | Set-Content c:/YourFile.txt
例如,单独删除引号就可以了:
(Get-Content c:/YourFile.txt) -replace '"', '' | Set-Content c:/YourFile.txt