【发布时间】:2014-03-25 20:34:46
【问题描述】:
我有一个类似于在这个问题中解决的问题:How do I split a string on a delimiter in Bash?。
真正的区别在于我的目标是 sh 和 ksh shell,因此,例如,我不能使用 <<< 重定向。
回顾我的问题,我有一个变量的内容是
VALUES="
val1 ;val2 ;val3
another1;another2;another3
"
很明显,空格 和; 是我想去掉的字符。
我还必须使用这些值,因为它们以 3 x 3 的形式出现,当时为 3,但我假设我可以简单地使用 $1,$2 和 $3 在扩展后加上每个循环结束时的shift 3。
谢谢。
【问题讨论】:
-
@blueberryfields 我想这会奏效,但最好讨论一些不需要任何外部工具的东西,看看
sh或ksh是否可行,使用外部工具并不像针对特定的外壳,它只是......使用外部工具。 -
嗯?另一个问题的公认答案使用纯 shell,没有外部工具(尽管 Awk 通常以某种形式提供)并且没有 Bash。
-
@tripleee 我猜我把
<<读成<<<;但你是对的,这也应该有效,我以某种方式错过了...... -
@tripleee 但该解决方案并不能很好地应对循环和迭代,这里给出的解决方案可以。