我有一個文件,其中包含多個帶逗號的單詞。我想讀取一個文件並將這些單詞存儲到數組中。在這個文件中,第一行是標題,其他行是基準。但是有些數據是空的。所以,這個空字符需要爲0。在讀取文件bash時將分詞存儲到數組中
H1;H2;H3;H4
12;23;33;44
44;;7;8
13;;;9
因此,我想跳過第一行,並把基準成4陣列=>
H1 array= 12;44;13
H2 array= 23;0;0
H3 array= 33;7;0
H4 array= 44;8;9
所以我的代碼就是這樣:
array=()
awk 'NR>1' $filename2 | while read line
do
cntr=0
IFS=";"
for i in $line; do
if [ -z $i ]; then array[cntr]=0;
else array[cntr]=$i;
fi
cntr=$[$cntr +1]
done
h1array+=("${array[0]}")
h2array+=("${array[1]}")
h3array+=("${array[2]}")
h4array+=("${array[3]}")
done
for ((i=0;i<3;i++)); do
echo "${h1array[$i]}"
done
for ((i=0;i<3;i++)); do
echo "${h2array[$i]}"
done
for ((i=0;i<3;i++)); do
echo "${h3array[$i]}"
done
for ((i=0;i<3;i++)); do
echo "${h4array[$i]}"
done
所以,它打印在終端空。我怎樣才能做到這一點?謝謝
那麼,你*實際*想要做的是用'0'填充空記錄? –
是的,並將此值添加到數組0 – lowcosthighperformance
你不需要一個數組。你甚至不需要'bash',你可以在'awk'的一行中做到這一點。你真的想達到什麼樣的目標(你想解決的問題)? –