我在网站上找不到解决方案。
如何在bash中将文本内容存储到数组中?
此代码实际上是在删除字符串之前的空格。
index=0
while read line; do
echo $line
str_array[index]="$line"
done < /testfile
答案 0 :(得分:2)
对于bash,请使用内置mapfile
:
$ cat testfile
asdf
asdf
asdf
asdf
$ mapfile -t str_array < testfile
$ printf "%s\n" "${str_array[@]}"
asdf
asdf
asdf
asdf
在bash提示下,请参阅help mapfile
答案 1 :(得分:1)
您需要取消定义字段分隔符,因此它会像:
while IFS= read line; do
echo "$line"
...
done < /testfile
答案 2 :(得分:1)
您可以这样做:
index=0
while IFS= read line ; do
str_array[$index]="$line"
index=$(($index+1))
done < testfile
@glennjackman在评论中建议或
index=0
while IFS= read line ; do
str_array[index++]="$line"
done < testfile