如何在 CSH 中拆分字符串?

发布于 2024-12-09 03:18:11 字数 49 浏览 0 评论 0原文

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

For example, I want to split "one,two,three" with comma as delimiter and use a loop to process the resulted three substring separately.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枉心 2024-12-16 03:18:11

比当前提出的解决方案更简单的解决方案涉及使用内置替换修饰符 - 在这种情况下没有必要或理由浪费地使用循环或外部命令替换:

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

echo $split[2] # returns two

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

此外,t/csh 不需要引用裸字符串,也不需要引用不需要强制求值的变量。

A simpler solution than the current one presented involves using the built-in substitution modifer -- there is no need or reason to wastefully use a loop or external command substitution in this instance:

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

echo $split[2] # returns two

() creates a list, the :s is the substitution modifier and :as repeats the subtitution as many times as needed.

Furthermore, t/csh does not require quoting of bare strings, nor variables that do not require forced evaluation.

_失温 2024-12-16 03:18:11

例如:

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

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

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

For example:

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

But consider whether csh is the right tool for whatever job you're doing:

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

国产ˉ祖宗 2024-12-16 03:18:11
set list = one,two,three
foreach i ( $list:as/,/ / )
  echo $i
end
set list = one,two,three
foreach i ( $list:as/,/ / )
  echo $i
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文