[英]Array is not storing data from text file as expected. How to get first word of each line into array using Powershell?
這是我的代碼:
Get-Content 'hist4.txt' | ForEach-Object { $_.split(" ")[0]} |
ForEach-Object {
$rgbArray += $_
for( $i = 1; $i -le $rgbArray.length; $i++ ) {
$rgbA0=$rgbArray[$i]
$rgbA1=$rgbArray[$i + 1]
//compare A0 and A1...
}
}
文本文件內容:
1 500
21 456
33 789
40 653
54 900
63 1000
101 1203
Get-Content 'hist4.txt'
ForEach-Object { $_.split(" ")[0]}
$rgbArray += $_
for( $i = 1; $i -le $rgbArray.length; $i++ )
如果我使用$rgbArray = @()
,則split()
命令的整個元素列表都存儲在$rgbArray[0]
。 這阻止了我遍歷它們,因為數組長度僅為1,即使在數組的0位置存儲了數百個值。
如果我使用$rgbArray +=
那么我確實可以循環使用元素。 但是,這會使數組的每個位置與最后一個位置相同,但加上下一個字符,而不是split命令中的整個元素。
例如: $rgbArray += $_
輸出
$rgbArray[0] = 1
$rgbArray[1] = 12
$rgbArray[2] = 121
$rgbArray[3] = 1213
$rgbArray[4] = 12133
$rgbArray[5] = 121334
$rgbArray = @($_)
輸出
$rgbArray[0] = 1 21 33 40 54 63 ....
$rgbArray[1] =
$rgbArray[2] =
$rgbArray[3] =
$rgbArray[4] =
$rgbArray[5] =
我需要在哪里:
$rgbArray[0] = 1
$rgbArray[1] = 21
$rgbArray[2] = 33
$rgbArray[3] = 40
$rgbArray[4] = 54
$rgbArray[5] = 63
等等。
我想知道我是否沒有正確創建數組,以及如何將每一行的第一個元素作為單獨的數組元素獲取?
在代碼的后面,我希望能夠將文本文件中不同行的第一個元素與其他第一個元素進行比較。
首先將前兩個管道元素的輸出分配給$rgbArray
變量:
$rgbArray = Get-Content 'hist4.txt' | ForEach-Object { $_.Split(" ")[0] }
平方之后,就可以開始處理數據了:
for( $i = 0; $i -lt ($rgbArray.Count - 1); $i++ ) {
$current = $rgbArray[$i]
$next = $rgbArray[$i + 1]
# compare $current and $next here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.