如何在CSH中拆分字符串?

twi*_*imo 8 csh

例如,我想用逗号分隔"一,二,三"作为分隔符,并使用循环分别处理结果三个子字符串.

小智 10

比当前提供的解决方案更简单的解决方案涉及使用内置替换修改器 - 在此实例中没有必要或理由浪费地使用循环或外部命令替换:

set list = one,two,three
set split = ($list:as/,/ /)

echo $split[2] # returns two
Run Code Online (Sandbox Code Playgroud)

()创建一个列表,:s是替换修饰符,并且:根据需要重复多次.

此外,t/csh不需要引用裸字符串,也不需要强制评估的变量.


Kei*_*son 5

例如:

set s = "one,two,three"
set words = `echo $s:q | sed 's/,/ /g'`
foreach word ($words:q)
    echo $word:q
end
Run Code Online (Sandbox Code Playgroud)

但请考虑csh是否适合您正在做的任何工作:

http://www.bmsc.washington.edu/people/merritt/text/cshbad.txt