regex
  • powershell
  • match
  • 2014-12-02 86 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

    相關問題