regex
  • powershell
  • match
  • 2014-12-02 113 views 1 likes 
    1

    我正在寻找一种方式来找到在多个文件中的特定行匹配,如:查找特定行匹配

    FILE1.TXT:

    abcd.123 
    efgh.456 
    

    FILE2.TXT:

    ijkl.789 
    mnop.001 
    

    我想返回每个文件中第2行的所有结果,如果它包含.(句点)。

    到目前为止,我已经试过这CMD:

    Get-Content *.ini | where-object {"$_" -match '.\\..='} 
    

    将返回一个包含.任何文件的文件名。

    我想要的是返回拥有第2行

    回答

    2

    你可以做这样的事情一个.任何文件的文件名:

    Get-ChildItem *.ini | ? { 
        (Get-Content $_.FullName)[1] -like '*.*' 
    } 
    

    由于Get-Content返回线的阵列,索引1将从给定文件中选取第二行。此外,你应该使用模式匹配(操作员-like),而不是在本次检查正则表达式,因为它满足了要求,并提供更好的性能。

    +0

    完美,我只是改变[1] [2],得到了结果我想要的,谢谢! – shawnbot 2014-12-02 20:50:42

    +0

    不确定这是否需要一个新问题,但是如何从结果集中的所有文件中删除第2行? – shawnbot 2014-12-02 21:18:28

    +0

    @shawnbot这需要一种不同的方法,所以是的,这应该是一个新问题。 – 2014-12-03 12:00:50

    相关问题