使用powershell在符合条件的每行开头添加文本

使用powershell在符合条件的每行开头添加文本,powershell,Powershell,我试图在每行的开头添加一个文本,该文本适用于使用Powershell的特定条件。 对于eg;使用powershell在包含“12345”的每行开头添加“@” Line 12345 Line 23456 Line 12345 输出应该是 @Line 12345 Line 23456 @Line 12345 您可以为此使用-replace: (Get-Content file.txt) -replace '.*12345','@$&' | Set-Content file.txt -r

我试图在每行的开头添加一个文本,该文本适用于使用Powershell的特定条件。 对于eg;使用powershell在包含“12345”的每行开头添加“@”

Line 12345
Line 23456
Line 12345
输出应该是

@Line 12345
Line 23456
@Line 12345

您可以为此使用
-replace

(Get-Content file.txt) -replace '.*12345','@$&' | Set-Content file.txt
-replace
的第一部分是用于匹配的正则表达式字符串
*
是任何字符(
)的零次或多次(
*
)。第二部分是替换字符串<代码>@是文字
$&
返回匹配的所有内容


有关使用
-replace

替换正则表达式的更多信息,请参阅。您可以使用
-replace
执行此操作:

(Get-Content file.txt) -replace '.*12345','@$&' | Set-Content file.txt
-replace
的第一部分是用于匹配的正则表达式字符串
*
是任何字符(
)的零次或多次(
*
)。第二部分是替换字符串<代码>@是文字
$&
返回匹配的所有内容


有关使用
-replace

替换正则表达式的更多信息,请参见?这些是txt文件的行吗?你的代码行?数组元素?如果($line=“line 12345”){$line=“@”+$line}需要循环,可以使用if语句,然后使用for循环。行是什么意思?这些是txt文件的行吗?你的代码行?数组元素?如果($line=“line 12345”){$line=“@”+$line}需要循环,可以使用if语句,然后使用for循环。