在Select-String中使用正则表达式

时间:2017-08-04 14:10:06

标签: powershell

我正在尝试使用Select-String

匹配一个或多个字符

例如:Sourcefiles:
a.txt
" rent.com/room.html"

b.txt
" rent.com /"

c.txt
rent.com

输出应
d:\测试\ A.TXT:1:" rent.com/room.html"


我得到的输出是:
d:\测试\ A.TXT:1:" rent.com/room.html"
d:\测试\ b.txt:1:" rent.com /"

代码:

$pat=@('rent.com/.\*"')
$files=Get-ChildItem "D:\test\*.*" -Recurse 
$files |
    Select-String -Pattern $pat |
    Out-File "D:\output\result.txt"


感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

你的模式有点偏,因为它会得到两者:

  • " rent.com/room.html"
  • '" rent.com /"'

您可能希望将其修改为类似

的内容

$pat='rent.com/.+"'

*表示0或更多,但+表示1或更多

我不确定你为什么要制作你的模式和阵列,我不确定你为什么要抓取多个文件,而不是他们的内容。您是否正在尝试查看单个文件的内容,如帖子所示?如果是这样,你可能会尝试这样做:

get-content C:\myfile.txt | select-string

或者您是否正在尝试遍历一堆文件并查看其名称?