bash 从逗号分隔变量到列表的文本操作

bash text manipulation from comma delimited variable to list

我是 bash 中处理文本的新手,非常感谢任何建议!

我在脚本的早期使用了一个变量,其格式如下:

runlist=echo 10,19,25,32

实际数字和列出的数字数量在不同的迭代中有所不同。它们将始终为 2 位数字。我需要这种格式的变量用于第一步。但在脚本的后面,我想将这些数字打印到一个临时文本文件中,像这样

cat tmp_runlist.txt
10
19
25
32

我尝试使用 IFS=',' 但发现它也修改了 runlist 变量,该变量在脚本末尾再次使用。我一直在探索使用 cutawk 但需要一些可以灵活地抓住逗号之间的字符而不是在马车 return 之前使用逗号的东西。

提前感谢您的想法:)

grep -o 可能有帮助:

s='10,19,25,32'
grep -o '[0-9]\+' <<< "$s"
10
19
25
32

我假设

runlist=echo 10,19,25,32

你的意思是

runlist=$(echo 10,19,25,32)

...或者只是

runlist=10,19,25,32

那样的话,最简单的方法应该是使用

echo "$runlist" | tr , '\n'

如果真的是

runlist=echo 10,19,25,32

那么你可以使用

echo "$runlist" | sed 's/^echo *//;s/,/\n/g'