我知道这是一个愚蠢的谷歌问题,但我没有找到真正简单的东西来满足我的需要。
我有一个包含以下内容的 .txt 文件:
hostname [ip]
exec /bin/bash
现在,每次我执行某个 PS 脚本(从 RUN 开始)时,我都希望 [ip] 根据我的 $args[0] 进行更改
例如:
.txt 现在:
hostname 1.1.1.1
exec /bin/bash
我正在执行运行script 2.2.2.2
.txt 预期:
hostname 2.2.2.2
exec /bin/bash
注意!全部内容将始终相同,只有 [ip] 会发生变化。
我正在寻找最简单的替换解决方案,谢谢:)
答案1
您的问题比较广泛,我不想写整个脚本,所以我只回答其中的主要部分。
要将文件中的“[ip]”替换为“1.1.1.1”:
gc input_file.txt | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc output_file.txt
如果要覆盖原始文件,则需要在第一个语句周围加上括号,以便它在开始时将整个文件加载到内存中:
(gc my_file.txt) | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc my_file.txt
gc
是 的缩写Get-Content
,sc
是Set-Content
,%
是ForEach-Object
。