[英]powershell write name of file containing string
我的輸入文件中有以下兩行。
示例輸入文件(文件名-file.txt)
String1 value 'string2'
..
..
..
Call string1
所需的輸出: File.txt
。 (即文件名)
基本上我想要文件名-如果它包含這兩行1) string1 value 'string2'
) call string1
上面的1)和2)是兩條不同的線,中間可能有很多線。
PS a)我正在搜索'string2'
。 'string1'
可以是任意8個字符。 我不知道'string1'
) 'string2'
將始終以單引號(')c) 'string2'
將始終以字符串'value'
開頭
謝謝
嘗試這個...
gc input.txt |?{$_ -match '.*value ''(.*)'''}|%{$matches[1]}
下面的腳本瀏覽當前目錄中的每個文件,並在內容中查找帶有兩行的文件。 不知道這是否滿足您的情況,但是根據您的環境對其進行自定義並不難。
dir *.* | foreach {if (get-content $_| Select-String -pattern "^[A-Za-z]{8} value 'string2'","Call string1") {"$_"}}
輸出(在我的實驗室中)是:
C:\Documents\ManualScripts\test.txt
test.txt是我創建的用於測試此腳本的文件。 內容如下:
abcdefgh value 'string2'
hello world
I love church
I love Jesus
call string1
Alibaba, sesame open the door!
對於@dazedandconfused,我相信您的腳本返回“ String1”,這是第二行的一部分,而不是他/她請求的文件名。 此外,您的腳本無法反映他/她的另一個需求:““ string1”可以是任意8個字符”。 如果我錯了,請原諒我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.