我正在寻找一种在 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'