替换Windows中文件中的字符串

时间:2013-10-07 17:31:49

标签: windows powershell sed

我正在寻找一种方法来替换文件中所有出现的字符串A和B.

我尝试使用GnuWin32 sed实用程序,但结果文件已被修剪。可能是因为该文件包含非unicode字符。只有在命令之前添加LC_ALL = C后,相同的命令才能在Mac上使用相同的文件。 我可以使用哪些其他工具以及如何使用?我可以将一些标志传递给可以使用非unicode字符的GnuWin32 sed吗?

3 个答案:

答案 0 :(得分:1)

在PowerShell中,这样的事情应该有效:

$f = 'C:\path\to\your.txt'
(Get-Content $f) -replace 'A','B' | Out-File $f

答案 1 :(得分:1)

另一种选择是使用变量语法:

${C:\path\to\your.txt} -replace 'A','B' | Out-File C:\path\to\your.txt

答案 2 :(得分:1)

如果没有看到文件编码,就无法判断这是否可行,但这会使用名为repl.bat的辅助批处理文件 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

type "file.txt" |repl "A" "B" >"newfile.txt"