我在网上发现了一个类似于此的命令
Get-Content .\aws_hosts | Where-Object {$_ -notmatch '([^\.0-9])'} | Set-Content out.txt
所做的就是将行复制到一个out.txt文件中。我正在设法从.\aws_hosts文件中删除一行。
在我的aws_hosts文件中,我希望具体地删除第2行的IP地址,而不是服务器行。
[servers]
35.35.35.25
下面是我所要做的linux版本(它来自Terraform教程,他们正在使用Linux,我只是不知道如何使用Powershell)
sed -i '/^[0-9]/d' aws_hosts
发布于 2022-05-03 00:53:13
只需使用与regex相同的sed
Get-Content .\aws_hosts |
Where-Object { $_ -notmatch '^[0-9]' } |
Set-Content out.txt
对于小型文件(大多数文本文件都是),可以简化为:
@(Get-Content .\aws_hosts) -notmatch '^[0-9]' | Set-Content out.txt
这种简化的方法--由于提前完全读取整个输入文件--还允许您像sed -i
一样将结果写回同一个文件。
https://stackoverflow.com/questions/72093765
复制相似问题