球队,
我在Windows中有一个文件,其内容如下所示:
460 ls
461 cd ..
462 ls
463 cd ubuntu /
464 ls
465 cd测试/
466 ls
467 cd ..
468 openvpn
我想删除开头存在的所有数字并获取实际内容.
我试过了 :
$var= Get-Content C:\Scripts\test.txt
$var.replace("/[4 6]/","");
$var.replace("/[4 6]/","");
($var.replace("4","")).Replace("6","")
Run Code Online (Sandbox Code Playgroud)
但是有可能为此获得一些正则表达式解决方案.
逐行处理文件时,您可以使用以下模式:
$var -replace '^[\s\d]+'
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
将整个文件作为一个字符串处理时,您需要使用
$var -replace '(?m)^[\p{Zs}\t\d]+'
Run Code Online (Sandbox Code Playgroud)
为了不溢出线.查看.NET正则表达式演示.
细节
^- 输入(?m)的开始(在模式开始时使用,^匹配输入的开始和每行的开始)[\s\d]+- 一个或多个空格(\s)或数字(\d)[\p{Zs}\t] - 匹配任何水平空格.