unix - 相当于 UNIX 差异和补丁的 native PowerShell

标签 unix powershell

我需要潜在地修补文件作为脚本的一部分。

为了使脚本所做的工作更具可读性,我想以类似于 UNIX“差异”和“补丁”方法的方式实现它。在标准的 UNIX 系统上,diff 可以生成一个特殊格式的文本文件,它表示两个文件之间的差异。这可能会被“补丁”与要修改的文件一起使用,以便以干净和直接的方式生成更改的文件。

在 PowerShell 中似乎没有直接的方法可以做到这一点。我见过的选项是使用多行正则表达式 - 这很难构建和解释,消耗整个文件并逐行处理它或将我想要在脚本中包含的新文件编码为 Base64 字符串和只需将其解码为目标文件即可。

虽然 Compare-Object 看起来好像可以做一些事情来生成适当的 diff 对象,但似乎没有简单的方法可以使用 Compare-Object 的输出将更改应用于字符串数组。

最佳答案

Compare-Object最接近 diff ,并且没有等效于 patch内置于 PowerShell 中。如果您需要该功能,我建议您使用 diff 的 Windows 端口。和 patch .

关于unix - 相当于 UNIX 差异和补丁的 native PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889161/

相关文章:

bash - 使用空格作为 cut 命令的分隔符

linux - 如何将登录用户名和密码脚本放入 csh 脚本中?

c - printf ("\033c") 是什么意思?

xml - 如何使用 PowerShell 创建新的 System.Xml.Linq.XElement

shell - 在vb6中获取实际的Powershell返回值?

powershell - Azure 自动化获取-AzureRmStorageAccountKey

unix - 如何仅从 ls -al 正确 grep 文件名

c - EOF是否设置了errno?

Powershell ISE 在(愚蠢地)删除所有变量后无法启动

azure - 如何使用 Get-AzWebApp 命令列出所有自定义域和订阅名称