Powershell로 기존 컨텐츠 편집 것을 찾지 못했습니다. 다음 내용의 .txt

나는 그것이 어리석은 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] 만 변경됩니다.

가장 간단한 교체 솔루션을 찾고 있습니다. 감사합니다 🙂



답변

귀하의 질문은 매우 광범위하며 전체 스크립트를 작성하고 싶지 않으므로 주요 내용에 대해서만 답변하겠습니다.

파일에서 “[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.


답변