Я знаю, что это глупый вопрос Google, но я не нашел что-то действительно простое для моих нужд.

У меня есть файл .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 ответ1

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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .