我正在尝试从文本文件中删除特定行。文本文件只是一个列表,如果存在特定条目,我想删除它们。所以我所拥有的是:
$f=${path_to_file}
for($i = 0; $i -le $f.length; $i++)
{
if ($f[$i] -eq "text_to_be_deleted")
{
$f[$i]=$null
}
}
${path_to_file}=$f
Run Code Online (Sandbox Code Playgroud)
问题是这会从文本文件中删除所有回车符。我尝试了以下方法:
(type path_to_file) -notmatch "text_to_be_deleted" | out-file path_to_file
Run Code Online (Sandbox Code Playgroud)
该命令的问题在于我可能有一个字符串,例如“abc”、“abcd”或“abcde”。如果我在引号中有“abc”,它会删除任何包含“abc”的行,而不仅仅是完全匹配。我真的很讨厌正则表达式,所以我无法弄清楚如何准确地指定这个字符串。
关于如何做到这一点的任何建议?
小智 7
这可以通过单行来完成:
(type path_to_file) -notmatch "^text to be deleted$" | out-file path_to_file
Run Code Online (Sandbox Code Playgroud)
请注意,^意思是“行的开头”,$意思是行的结尾。
| 归档时间: |
|
| 查看次数: |
27309 次 |
| 最近记录: |