繁体   English   中英

在csh中为foreach更改定界符

[英]Change delimiter for foreach in csh

我有一个字符串如下:

set str = "HELLO SO COMMUNITY| CAN YOU HELP ME"
foreach word ($str)
    echo $word
end

目前,这将打印HELLO,然后是SO,然后是COMMUNITY,依此类推。 我希望打印的分度为| 因此输出应为HELLO SO COMMUNITY,然后您可以帮助我。 有谁知道如何做到这一点。

set str = "HELLO SO COMMUNITY| CAN YOU HELP ME"

set delimiter = '|'
set special_char = '_' # A character you know doesn't appear in your strings

set words = `echo $str | sed "s/ /$special_char/g" | sed "s/$delimiter/ /g"`
# words now contains "HELLO_SO_COMMUNITY _CAN_YOU_HELP_ME"

foreach word ($words)
    echo $word | sed "s/$special_char/ /g"
end

用您知道不会出现在字符串中的字符替换special_char 请注意任何特殊字符。 我会避免* ? $\\和其他可能由cshell解释的标记。 cshell的规则#1是,它总是以错误的方式解释它们...:P

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM