这是我的字符串的样子:
value="inst1,inst2,inst3"
这是我的shell命令的样子,它将计算逗号分隔的单词的数量。
echo "$value" | tr ',' ' ' | wc -w
3
只要值中没有空格,就可以很好地工作。如果我在value中的一个单词上添加一个空格,则count会发生变化。
value="inst1,inst2,inst 3"
echo "$value" | tr ',' ' ' | wc -w
4
如何获得输出3
并忽略字符串中的空格?
发布于 2018-07-14 05:07:19
您可以使用这个使用逗号字段分隔符的awk
命令:
value="inst1,inst2,inst 3"
awk -F, '{print NF}' <<< "$value"
3
还有一种使用grep
的替代解决方案
grep -oE '[^,]+' <<< "$value" | wc -l
发布于 2018-07-14 05:20:19
将单词存储在数组中,并输出元素的数量:
IFS=, read -ra arr <<< "$value"; echo "${#arr[@]}"
发布于 2018-07-14 05:04:13
先将空格替换为其他内容,然后执行您所做的操作。如下所示:
echo "$value" | tr ' ' '_' | tr ',' ' ' | wc -w
https://stackoverflow.com/questions/51332772
复制相似问题