我想制作一个接受元音的shell脚本,并在文本文件“abc.txt”中输出该元音的出现次数。grep语句不适用于case语句
下面的脚本作品完美(脚本打印元音“A”的文本文件中“的abc.txt”出现的次数):
#!/bin/bash
grep -o [aA] abc.txt|wc -l
但我想实现这个对所有元音所以我这样做:
#!/bin/bash
echo -n "Enter the desired vowel: "
read ch
case ch in
a) grep -o [aA] abc.txt|wc -l;;
A) grep -o [aA] abc.txt|wc -l;;
e) grep -o [eE] abc.txt|wc -l;;
.
.
.
U) grep -o [uU] abc.txt|wc -l;;
esac
代码执行,但之后我输入所需的元音没有任何显示。我也试过这样(但结果是一样的上面的代码):
#!/bin/bash
x=0
echo -n "Enter the desired vowel: "
read ch
case ch in
a) x=grep -o [aA] abc.txt|wc -l;echo $x;;
A) x=grep -o [aA] abc.txt|wc -l;echo $x;;
e) x=grep -o [eE] abc.txt|wc -l;echo $x;;
.
.
.
U) x=grep -o [uU] abc.txt|wc -l;echo $x;;
esac
我迷路了,为什么当我把他们case
内grep
报表不显示任何内容声明。
如果你想改善命令,你可以尝试''grep -oci“$ vovel”''(不区分大小写的grep),当vovel不需要验证时。 – allo
grep -oc [aA] abc.txt和grep -oci'a'abc.txt似乎不起作用。不管有多少个a,都返回1。 – Jaspreet
@Jaspreet:它对我来说工作得很好。你能告诉我们'abc.txt'什么命令字符,您在搜索为 – Inian