如何计算字符串中的特定字符 - CSH。
set my_path = "/home/user/docs/files"
set sum = ???
让我们说,我们需要计算' /'
答案 0 :(得分:0)
如果您无法使用任何外部工具,则只能使用tcsh
(使用丑陋的解决方法):
$ set my_path = "/home/user/docs/files"
$ set tmp= ( ${my_path:as,/, x,} )
$ set sum=${#tmp}
$ echo ${sum}
4
对set tmp= ( ${my_path:as,/, x,} )
的一点解释:我们将所有(s
)a
字符替换为/
({1}}(空格和x)并创建这些单词的数组(用空格分隔)。 x
计算${#tmp}
中的字数。查看更多man tcsh(“历史记录替换”一章)。
我认为这个解决方案非常难看,并且仅在您的情况下工作(例如,如果删除第一个${tmp}
,则不会生成所需的值)。
我希望您可以使用外部工具 - 仅/
和grep
:
wc
此版本更好,因为不需要任何解决方法,并且在其他情况下有效。如果可以,请选择此解决方案。