use powershell to sample files

https://codertw.com/%E5%89%8D%E7%AB%AF%E9%96%8B%E7%99%BC/390141/


PowerShell讀取文字檔:

Get-Content,獲取指定位置的項的內容。

語法:Get-Content [-Path] <檔案路徑>
[-Path]由方括號引起,表示可以寫,也可以不寫;不寫則預設後面是檔案路徑,寫了就指名道姓的說後面是檔案路徑。

直接執行這樣一個命令,PowerShell將會把檔案的內容輸出到控制檯上,如果你是想看看檔案的內容,那這樣做就Perfect!

但有時候,你想玩點高難度的運作——想把檔案翻開來對裡面的內容進行修改,那後面你可以用管道來把它傳出去,或者直接把它賦值給一個變數。舉例如下:
複製程式碼 程式碼如下:$file = Get-Content “d:\1.txt”

Get-Content “d:\1.txt” | %{Write-Host $_.Replace(“日”,”太陽”)} #這樣就可以實現把d:\1.txt的內容,逐一輸出,並把“日”字,替換為太陽。

獲取檔案的前N行:
Get-Content d:\1.txt -totalcount 100 | set-Content top100.txt
說明:這裡的Set-Content top100.txt是把前面一個語句的結果,寫一個新的檔案——top100.txt

如果這個時候,你想獲取檔案的第100行,你會不會想到去做一個很複雜的迴圈?如果是,那說明你有很好的程式設計素養。但是PowerShell告訴你不用如此麻煩。舉例如下:
複製程式碼 程式碼如下:(Get-Content d:\1.txt -TotalCount 100)[-1]
說明:啥!你看到了啥?!如果你簡單的看()[-1],那是不是像陣列呢?-1表示最後一個陣列元素,那就表示前100行的最後一行,那是不是第100行呢?!

最後要說一下,這個命令返回的是一個物件陣列,可以用ForEach-Object(別名是%)去遍歷它。非常方便,前面你應該已經看到“太陽”的例子了



留言