配列項目に6桁の数字が含まれているかどうかをチェックするループを実行しようとしています。配列項目にbashの6桁が含まれているかどうかをチェックする方法
while read -a course; do
size=$[#course[@]]
done < tmp2
for ((j=1; j<=size; j++)); do
if ((${course[j]} != [0-9][0-9][0-9][0-9][0-9][0-9])); then
echo ${course[j]}
fi
done
whileループは、tmp2から配列に行を挿入します。
次に、各要素をチェックするためにforを使用し、6桁の数字がない場合はprintfだけを使用します。あらかじめtnx!
'$ [#course [@]]'?多分あなたは '$ {#course [@]}'を望んでいたでしょうか?しかし、それは意味をなさない。なぜなら、ループが完了したときにファイルの最終行に行数しか格納されないからである(入力ファイルの各行に対して 'size'への代入を呼び出すたびに、前の行)。 –
...なぜあなたは 'size'を全く格納していませんか?配列を直接反復することができます。 –
ところで、ファイルの最初の行だけを読みたい場合、 'while'ループはまったく必要ありません。 'read -a courses