我有一个CSV,每行2个IP。我想合并两个用***
隔开的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[@]}"
答案 0 :(得分:0)
除非输入文件包含,
以外的其他内容作为分隔符,否则您的代码应该可以使用。不过,您可以使其更短(需要Bash 4.0或更高版本):
mapfile -t array < IPPairs.csv
array=("${array[@]/,/***}")
第一个命令将文件读入数组,第二个命令在每个数组元素中将,
替换为***
。