2015-05-07 264 views
-1

我希望你能幫助我,基本上,我在尋找PowerShell的相當於awk命令:這樣做的awk命令到PowerShell的等價

awk '/"Box11"/ { print $0 }' test.txt|awk '{ SUM += $4} END { print SUM} ' 
+1

我不知道'awk',但我知道powershell。你能解釋你的awk命令在做什麼嗎? – Matt

+0

打印包含字符串Box11的行,然後將其管道傳輸到另一個打印第4列總數的awk(用空格分隔) – zzevannn

+2

請發佈文本文件示例以及命令應生成的輸出。 –

回答

3

多種方式,但這會做的伎倆:

Get-Content c:\temp\test.txt | Where-Object{$_ -match '"Box11"'} | 
    ForEach-Object{($_ -split "\s+")[3]} | Measure-Object -Sum | 
    Select-Object -ExpandProperty Sum 

獲取文件的字符串數組。對於包含字符串"Box11"的每一行,我們在每組空格上分割一行。然後將每場比賽的4個元素傳遞給Measure-Object

手短,如果你看重的,應該是這樣的:

gc c:\temp\test.txt | ?{$_ -match '"Box11"'} | %{($_ -split "\s+")[3]} | 
    Measure -Sum | Select -Exp Sum 

如果這個文件/字符串輸入了頭,這將是一個良好的開端爲好。當然假設你的文件是用一個空格分隔的。

Get-Content c:\temp\test.txt | ConvertFrom-Csv -Delimiter " " 
+0

謝謝,我怎麼可以在file.bat或.file.exe中轉換此行? –