我有一个char名为 的变量sign和一个给定的字符串sub。我需要找出它sign在 中出现了多少次sub并且无法使用grep。
例如:
sign = c
sub = mechanic cup cat
echo "$sub" | awk <code i am asking for> | wc -l
Run Code Online (Sandbox Code Playgroud)
输出应该是4因为c出现了 4 次。<>里面应该包含什么?
sign=c
sub='mechanic cup cat'
echo "$sub" |
awk -v sign="$sign" -F '' '{for (i=1;i<=NF;i++){if ($i==sign) cnt++}} END{print cnt}'
Run Code Online (Sandbox Code Playgroud)
编辑:
评论中要求的更改:
sign为 1(不=存在)。如果为 true,请将sign和更改sub为小写以忽略大小写。${sign:0:1}仅将第一个字符传递给awk。sign=c
sub='mechanic Cup cat'
if [ "${#sign}" -eq 1 ]; then
sign=${sign,,}
sub=${sub,,}
fi
echo "$sub" |
awk -v sign="${sign:0:1}" -F '' '{for (i=1;i<=NF;i++){if ($i==sign) cnt++}} END{print cnt}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |