使用Bash计算文件中的字符数并分配给变量

时间:2014-01-31 21:49:20

标签: bash shell

我需要遍历提供的文本文件并计算文件中的字符数。该文件只包含一个我应该分析的单词。所以基本上,我只需知道单词的长度。我想将长度分配给我在bash文件中定义的变量。这就是我所拥有的(忽略其他if语句,我知道它正常工作。我只需要帮助while循环):

#!/bin/bash
FILE=$1
COUNT=0
NUMCHARS=0
while IFS= read -rN1 char; do
  if [[ "$char" == $'[a-zA-Z0-9#$+%@]' ]]; then
    let NUMCHARS=NUMCHARS+1
  fi
done < "$FILE"
if [ -r "${FILE}" ]; then
  if /bin/egrep -q [09] $FILE ; then
    let COUNT=COUNT+5
  fi
fi
echo $COUNT
echo $NUMCHARS

1 个答案:

答案 0 :(得分:3)

  

该文件只包含一个单词

在这种情况下,你可以这样做:

# read the whole file in a variable
w="$(<"$FILE")"

# get the length
echo "length is: ${#w}"

选项2:使用wc

len=$(( $(wc -c < "$FILE") - 1 ))