从文本文件逐行读取并输出到数组bash

时间:2016-07-17 21:49:31

标签: arrays linux bash shell while-loop

我正在尝试从.txt中读取行并将每行从文本复制到以前使用ARRAY创建的文件夹

cat stores/locations.txt |while read -r LINE;do 
echo "$LINE" > county/${ARRAY[${i}]}/localstores.txt
done

当我运行它时,它只在目录县创建一个文件,其中包含一行商店的联系信息,但我真正想要它做的是将文件放在ARRAY的每个元素而不是父文件夹县

每行数据包括以下内容:

<storeid> <storename> <amountofEmployees> <nameofManager>

我非常困难,真的很感激帮助!

1 个答案:

答案 0 :(得分:1)

一种简单的方法如下所示,它为每一行创建一个新文件,并可选择将该行添加到数组中。

 declare -A myArray()

 while IFS= read -r line # Read a line
 do
    touch  mytargetpath/"$line.txt" # Creates a new file for each of the line in the desired path
    myArray+=("$line") # Append line to the array
 done < stores/location.txt

并将数组内容打印为: -

# Print the file (print each element of the array)

for e in "${myArray[@]}"
do
    echo "$e"
done