.txtファイルを取り込み、各テキスト行を配列にソートし、垂直バー区切り記号(|)が表示されるたびに、各行エントリに基づいて別の配列を作成するコードを記述しようとしています。 私は主に動作するコードを書いていますが、出力に問題があります。Bash配列そのもの
#!/bin/bash
mapfile -t myArray < placeholder.txt
for ((i = 0 ; i < ${#myArray[@]} ; i++))
do
#echo "Element [$i]: ${myArray[$i]}"
declare -a column
for ((i = 0 ; i < ${#myArray[@]} ; i++))
do
column+=($(echo $myArray | tr "|" " "))
done
for ((i = 0 ; i < ${#column[@]} ; i++))
do
echo "Element [$i]: ${column[$i]}"
done
done
入力データがある場合:
example|of|data|in|array
more|array|data
私は、出力は次のようになりたい:
Element [0]: example
Element [1]: of
Element [2]: data
Element [3]: in
Element [4]: array
Element [5]: more
Element [6]: array
Element [7]: data
しかし、その代わりに、私は取得しています:
Element [0]: example
Element [1]: of
Element [2]: data
Element [3]: in
Element [4]: array
Element [5]: example
Element [6]: of
Element [7]: data
Element [8]: in
Element [9]: array
を私はそれは私のループの問題です私がこれについて間違った方法をとっているかどうか教えてください!
'エコー$ myArray'は'エコー "$ {myarrayの[$ i]を}" ' – Barmar
は、なぜあなたはbash''でこれをやっているべきか? – chepner