2021-01-25

Select-String:資料來源 TXT

-Path 檔名
-Path FileInfo物件
-Encoding 參數
用 gc 讀取TXT,尋找比較慢
顯示檔案內容
PS R:\> gc 1.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
PS R:\> gc 2.txt
aaa



bbb

-Path 檔名

一個檔名
PS R:\> Select-String -Pattern 'bb' -Path 1.txt

1.txt:2:bbbbb


PS R:\>
二個檔名
PS R:\> Select-String -Pattern 'bb' -Path 1.txt,2.txt

1.txt:2:bbbbb
2.txt:5:bbb

檔名:第幾行:行的內容

PS R:\>
使用萬用字元
PS R:\> Select-String -Pattern 'bb' -Path *.txt

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\>

-Path FileInfo物件

使用FileInfo物件
PS R:\> Select-String -Pattern 'bb' -Path (dir *.txt)

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\> $r = dir *.txt
PS R:\> Select-String -Pattern 'bb' -Path $r

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\>
使用管線:傳送FileInfo物件給 Path參數
PS R:\> dir *.txt | Select-String -Pattern 'bb'

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\>

PS R:\> dir *.txt | Select-String -Pattern 'bb' -Path {$_}

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\>

PS R:\> dir *.txt | Select-String -Pattern 'bb' -Path {$_.FullName}

1.txt:2:bbbbb
2.txt:5:bbb


PS R:\>
Path參數值必須是檔案名稱
PS R:\> Select-String -Pattern 'bb' -Path R:\
Select-String : 無法讀取檔案 R:\: 拒絕存取路徑 'R:\'。



-Encoding 參數

顯示檔案內容(ANSI編碼格式)
PS R:\> gc ansi.txt
一一一
二二二
三三三
四四四
五五五
PS R:\>
沒反應
PS R:\> Select-String -Pattern '二' -Path ansi.txt
PS R:\>

當檔案的編碼格式是ANSI
它沒有BOM
會被當作 utf8 來讀取
-Encoding default
PS R:\> Select-String -Pattern '二' -Path ansi.txt -Encoding default

ansi.txt:2:二二二


PS R:\>

ANSI編碼格式,需要用到 -Encoding default

其他編碼格式,例如:unicode、utf8、utf8BOM
不需要指定 -Encoding

如果有BOM,一切以BOM為準
如果沒有BOM,預設是utf8

用 gc 讀取TXT,尋找比較慢

比較慢
PS R:\> gc 1.txt | Select-String -Pattern 'bb'

bbbbb


PS R:\>
比較快
PS R:\> Select-String -Pattern 'bb' -Path 1.txt

1.txt:2:bbbbb


PS R:\>
參考:https://www.pstips.net/snare-of-select-string.html

沒有留言:

張貼留言