如何计算字符串中的特定字符 - CSH

时间:2017-10-26 17:21:38

标签: linux string shell csh tcsh

如何计算字符串中的特定字符 - CSH。

set my_path = "/home/user/docs/files"
set sum = ???

让我们说,我们需要计算' /'

1 个答案:

答案 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,} )的一点解释:我们将所有(sa字符替换为/({1}}(空格和x)并创建这些单词的数组(用空格分隔)。 x计算${#tmp}中的字数。查看更多man tcsh(“历史记录替换”一章)。

我认为这个解决方案非常难看,并且仅在您的情况下工作(例如,如果删除第一个${tmp},则不会生成所需的值)。

我希望您可以使用外部工具 - 仅/grep

wc

此版本更好,因为不需要任何解决方法,并且在其他情况下有效。如果可以,请选择此解决方案。