仅当行不是以某个特定字符开头时,powershell才替换文件中的行

伊菲迪·奥孔科(Ifedi Okonkwo)

我有这行powershell正则表达式来替换配置文件中的一行。想法是替换任何包含单词“ Listen”的行,然后立即替换任何数字。

(gc  .\path\httpd.conf) -replace  "Listen \d+", "Listen 999"

您可能会猜到,它正在尝试以编程方式更改配置文件中的端口声明,用“ 999”替换任何现有数字。

问题是,替换发生了,但也影响到如下行:

#Listen 111
 #Listen 222
# Listen 333

这些注释行不应匹配/替换。

我该如何实现?

蒂姆·比格莱森(Tim Biegeleisen)

您可以使用以下正则表达式模式:

^[^#]*Listen \d+

演示版

#从出现该行之前开始的行开始,任何匹配不包含注释字符的行都将匹配Listen \d+您更新的代码:

(gc  .\path\httpd.conf) -replace  "^[^#]*Listen \d+", "Listen 999"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅当!exist存在时,才单独使用sed和sed在以特定字符串开头的行上进行替换。

使用Perl仅替换文件的特定行中的字符串

如果行/行不是以c#中已建立的字符开头,则跳过或删除CSV文件中的行/行

仅当包含字符串的行中也包含使用Bash在另一个文件中找到的数字时,才如何替换文件中的字符串?

sed替换文件中的特定行

Python:以模式开头替换文件中的行

是否可以仅替换文件中的特定行而无需重写整个文件

如何替换文件中以某个前缀开头的所有字符串

当存在多个匹配项时,PowerShell替换文件中的特定字符串

使用grep检查行是否不是以特定字符串开头

替换文件中的行

如何用不是以某个特定字符开头的空格分隔字符串?

仅当行与特定字符串匹配时才选择

如何使用PowerShell替换文件中的行?

仅保留 txt 文件中包含某个单词/字符的行(Powershell)(Windows 批处理文件)

替换文本文件中的特定行

使用Ruby替换文件中的特定行

如何使用Java替换文件中的特定行?

如何替换文件中的SQL特定行?

使用bash批量替换文件中的特定行

仅当整个随机行的特定值等于某个变量时,才输出特定的字段值

替换不以文本文件中特定字符开头的行上的特定列

替换文件第n行中的字符串

仅当行号以+ csv文件开头时才替换行中的单词

如何替换文件中的特定字符

如何替换文件中的特定字符

Grep表示不是以“ //”开头的行

匹配不是以日期开头的行

grep行不是以#或空行开头