[英]Convert CSV to array in Bash
我有一个CSV,每行2个IP。 我希望将由***
分隔的2个IP组合在一起并填充数组。 我尝试了下面的代码,但我只得到了最后一行。
#!/bin/bash
INPUT="IPPairs.csv"
array=()
while IFS="," read var1 var2 ; do
echo $var1 $var2
pairString="$var1***$var2"
array+=($pairString)
done < $INPUT
echo "${array[@]}"
除非您的输入文件包含除了分隔符以外的其他内容,
否则您的代码应该可以正常工作。 但是你可以缩短它(需要Bash 4.0或更新版本):
mapfile -t array < IPPairs.csv
array=("${array[@]/,/***}")
第一个命令的文件中读取到一个数组,第二命令替换,
用***
在每个数组元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.