使用Bash将文件内容提取到数组中

Jaf*_*i92 19 arrays bash

如何逐行在Bash中将文件内容提取到数组中.每一行都设置为一个元素.

我试过这个:

declare -a array=(`cat "file name"`)
Run Code Online (Sandbox Code Playgroud)

但它没有用,它将整行提取为[0]索引元素

Håk*_*and 29

对于bash版本4,您可以使用:

readarray -t array < file.txt
Run Code Online (Sandbox Code Playgroud)

  • 这是在现代狂欢中进行的合理有效的方式.请注意,`readarray`是`mapfile`的同义词. (3认同)

Jun*_*lez 23

您可以使用循环读取文件的每一行并将其放入数组中

# Read the file in parameter and fill the array named "array"
getArray() {
    array=() # Create array
    while IFS= read -r line # Read a line
    do
        array+=("$line") # Append line to the array
    done < "$1"
}

getArray "file.txt"
Run Code Online (Sandbox Code Playgroud)

如何使用你的数组:

# Print the file (print each element of the array)
getArray "file.txt"
for e in "${array[@]}"
do
    echo "$e"
done
Run Code Online (Sandbox Code Playgroud)