使用 Bash 使用 IFS 拆分字符串?

Split string with IFS using Bash?

我有一个像这样的字符串:

Spain-South Africa:2-1

我想像这样拆分它:

Spain-South Africa
2-1

我试图用 IFS=':' 拆分它,但它给了我:

Spain-South

Africa
2-1

我的代码:

无法重现,但您可能没有为 read 命令正确设置 IFS,或者您没有正确显示输出。

$ str="Spain-South Africa:2-1"
$ IFS=: read -ra results <<< "$str"
$ declare -p results
declare -a results=([0]="Spain-South Africa" [1]="2-1")

根据你短暂的评论,你想要像

这样的东西
while IFS=: read -ra results; do
    ...
done < ""

而不是

for str in $(cat ""); do
    ...
done