输出一个内部字符串数组以及它们在文件中出现的次数

时间:2015-11-12 20:06:25

标签: arrays bash unix

我需要在脚本中创建一个数组,并输出数组中的每个字符串及其在文本文件中出现的次数。输出应如下所示:

wheel  20               
the    10           
want   3           
from   6

这是我到目前为止所遇到的多个语法错误。我是unix的新手。

declare -a arr=("wheel" "The" "want" "from")
for i in "$(arr[@]}"
do
   echo "$i" | tr -s ' ' '\n' < audi_dudi.txt | grep -c '$i'
done

1 个答案:

答案 0 :(得分:4)

你几乎就在那里,只是管道有点破损,而且还有一些拼写错误。

你已经清楚知道要做什么了,所以我不会指出你这样做的新方法,而是指出你如何解决你的问题。以下是您正在进行的操作,代码后面描述的更改很少:

for i in "${arr[@]}"
do
   tr -s ' ' '\n' < audi_dudi.txt | grep -c "$i"
done

请注意更改:

  1. 迭代数组时,您有一个(而不是{
  2. 您不必管道匹配参数i,这会破坏所有内容。
  3. 变量不会用单引号扩展,所以修复它(这是一个* nix newbie classic btw)。