Arrays 读取文件并使用bash影响数组中的拆分结果
我的代码逐行读取文件,并用逗号分隔每行;或者空间,结果会影响数组,但问题是我无法读取数组的elmenArrays 读取文件并使用bash影响数组中的拆分结果,arrays,bash,Arrays,Bash,我的代码逐行读取文件,并用逗号分隔每行;或者空间,结果会影响数组,但问题是我无法读取数组的elmen #!/bin/bash filename="$1" while read -r line do name=$line echo "Name read from file - $name" arr=$(echo $name | tr ";" "\n") echo ${arr[1]} for x in $arr do echo "> [$x]" var1=$x var2=
#!/bin/bash
filename="$1"
while read -r line
do
name=$line
echo "Name read from file - $name"
arr=$(echo $name | tr ";" "\n")
echo ${arr[1]}
for x in $arr
do
echo "> [$x]"
var1=$x
var2=$x
done
done < "$filename"
我使用的文件包含以下行:
car; vehicle
computer;apple
要在数组中循环,请执行以下操作:
for x in "${arr[@]}"; do
echo "> [$x]"
done
while IFS=';' read -ra arr; do
printf "[%s]\n" "${arr[@]}"
echo '----------'
done < file
${arr[@]}
扩展将包括整个数组,而$arr
仅包括第一个数组元素
但是,如果将read-ra
与自定义IFS
一起使用,则可以直接将每个分隔线读取到数组中:
for x in "${arr[@]}"; do
echo "> [$x]"
done
while IFS=';' read -ra arr; do
printf "[%s]\n" "${arr[@]}"
echo '----------'
done < file
要在数组中循环,请执行以下操作:
for x in "${arr[@]}"; do
echo "> [$x]"
done
while IFS=';' read -ra arr; do
printf "[%s]\n" "${arr[@]}"
echo '----------'
done < file
${arr[@]}
扩展将包括整个数组,而$arr
仅包括第一个数组元素
但是,如果将read-ra
与自定义IFS
一起使用,则可以直接将每个分隔线读取到数组中:
for x in "${arr[@]}"; do
echo "> [$x]"
done
while IFS=';' read -ra arr; do
printf "[%s]\n" "${arr[@]}"
echo '----------'
done < file
我认为需要重新检查您关于
arr=$(echo$name | tr”;“\n”)
正在创建数组的假设。我认为您关于arr=$(echo$name | tr”;“\n”)
正在创建数组的假设需要重新检查。我想影响var1=${arr[1]}和var2=${arr[2]},但问题是当我创建echo${arr[1]}这没有给出任何信息,因此我无法访问带有索引号的数组。您希望在var1
和var2
中使用什么值?在var1=${arr[1]}和var2=${arr[1]}中使用什么值,但问题是${arr[1]}没有返回任何内容,所以在var1=car和var2=vehicle中,无论什么东西不起作用,请提供这样的演示,我将建议您进行修复。我想影响var1=${arr[1]}和var2=${arr[2]},但问题是,当我回送${arr[1]}时,这没有任何作用,因此,我无法访问带有索引号的数组。在var1
和var2
中,您想要什么值?在var1=${arr[1]}和var2=${arr[1]}中,但是问题echo${arr[1]}没有返回任何值,因此在var1=car和var2=vehicle中,无论什么都不起作用,请提供这样的演示,我将建议您解决。