在文本文件中,每行包含一些单词。它看起来像
split time not big
every cash flu green big
numer note word
swing crash car out fly sweet
如何拆分这些行并将其存储在数组中?我需要做类似这样的数组
for i in $file
do
echo "$array[0]"
echo "$array[2]"
done
有人可以帮忙吗?
答案 0 :(得分:2)
您可以逐行读取文件read
并将该行分配给数组。它相当脆弱,可能会因文件内容而中断。
while read line; do
array=( $line )
echo "${array[0]}"
echo "${array[2]}"
done < file
解析文本文件的更好方法是使用awk
:
awk '{print $1; print $3}' file
答案 1 :(得分:1)
我不明白你为什么需要一个阵列。你可以这样做:
while IFS= read -r line; do
read -r item1 item2 item3 <<< "$line"
printf '%s\n%s\n' "$item1" "$item3"
done < "$file"
但如果你愿意,你也可以让read
给你一个数组:
read -ra array <<< "$line"
printf '%s\n%s\n' "${array[0]}" "${array[2]}"