And*_*dyR 2 regex powershell text file-manipulation
我有一个包含以.txt结尾的文件名的大型文本文件.文件扩展名后,文件的某些行包含不需要的文本.我试图找到一种方法来搜索+替换或修剪整个文件,以便如果找到一行.txt,之后的任何内容都会被删除.例
C:\个Test1.txt
C:\ Test2.txtHelloWorld这是我的问题
C:\ Test3.txt_ _ __ _Annoying stuff1234 .r
期望的结果
C:\个Test1.txt
C:\的test2.txt
C:\ Test3.txt
我尝试过使用notepad ++,或使用batch/powershell,但是接近了,没有雪茄.
(Get-Content "D:\checkthese.txt") |
Foreach-Object {$_ -replace '.txt*', ".txt"} |
Set-Content "D:\CLEAN.txt"
Run Code Online (Sandbox Code Playgroud)
我的想法是,如果我在.txt之后替换任何东西(Wildcard*),那么我会剪掉我需要的东西,但这不起作用.我想我需要使用正则表达式,购买语法错误.
只需将其更改*为a .*,如下所示:
(Get-Content "D:\checkthese.txt") |
Foreach-Object {$_ -replace '\.txt.*', ".txt"} |
Set-Content "D:\CLEAN.txt"
Run Code Online (Sandbox Code Playgroud)
在正则表达式,*意为"0次以上",而在这种情况下,它会作用于最终t的.txt,所以.txt*将只匹配.tx,.txt,.txtt,.txttt,等...
.但是,匹配任何角色.这意味着,.*匹配任何东西的0或更多,这是你想要的.正因为如此,我也躲过了.中.txt,因为它可以否则像文件名突破:alovelytxtfile.txt,这可能会被缩减到alovel.txt.
有关更多信息,请参阅:
| 归档时间: |
|
| 查看次数: |
6596 次 |
| 最近记录: |