在ksh中拆分字符串

在ksh中拆分字符串

我正在寻找一种在 ksh 中拆分字符串的快速/简便的方法。

每个项目之间有不同的数字分隔符(空格)。

例子:

value1 value2                  value3

有什么建议/意见吗?

答案1

使用 for 循环对输入字符串进行分割将会在空格处进行。

LIST="value1  value2 value3"
for x in $LIST ; do
    echo $x
done

收益

value1
value2
value3

或者

LIST="value1  value2 value3"
set -A STRING "$LIST"
for x in $STRING ; do
    echo $x
done

收益

value1
value2
value3

答案2

您可以使用数组。

LIST="value1  value2 value3"
set -A values $LIST
echo ${values[0]}

value1

答案3

通过 sed 和可选的 grep 进行管道传输也可以

LIST="value1  value2 value3" ;
echo "$LIST" | sed 's/[[:space:]]/\n/g' | grep .

如果您还删除引号,则可以删除 grep,这样可以删除多个空格,但其他格式可能会受到影响。

LIST="value1  value2 value3" ;
echo $LIST | sed 's/[[:space:]]/\n/g'

相关内容