我正在嘗試編寫一個.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
我幾乎肯定這是我的循環問題,b讓我知道,如果我是這樣做的錯誤!
'回聲$ myArray'應該是'回聲 「$ {myArray的[$ i]}」' – Barmar
你爲什麼用'bash'這樣做呢? – chepner