0

我是在 bash 中操作文本的新手,感谢任何建议!

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

runlist=echo 10,19,25,32

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

cat tmp_runlist.txt
10
19
25
32

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

提前感谢您的想法:)

4

2 回答 2

2

我将假设而不是

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'
于 2015-03-02T21:22:30.123 回答
1

grep -o可能有帮助:

s='10,19,25,32'
grep -o '[0-9]\+' <<< "$s"
10
19
25
32
于 2015-03-02T21:21:24.023 回答