【发布时间】:2012-11-18 06:42:42
【问题描述】:
在这里使用 shell 脚本,尝试在不使用 wc 命令的情况下计算文件中的单词/字符/行数。我可以将文件分成几行并轻松计数,但我在这里努力获取单词和字符。
#define word_count function
count_stuff(){
c=0
w=0
l=0
local f="$1"
while read Line
do
l=`expr $line + 1`
# now that I have a line I want to break it into words and characters???
done < "$f"
echo "Number characters: $chars"
echo "Number words: $words"
echo "Number lines: $line"
}
【问题讨论】:
-
tr -s ' \t\r\n' '\n'可能会有所帮助。 -
你为什么不想使用 wc?它几乎随处可用。
-
看看this
-
你在使用 bash 吗? kev 指出了其他实现的好资源。 Bash 在这里并不是最好的选择。你很难确保它在所有情况下都有效。例如,默认情况下读取允许使用反斜杠“\”转义行尾。所以你需要做
read -r。如果您需要可移植性(mac 或 windows),read -N可以更好地成功跟踪换行符。仅供参考${#parameter}在 bash 中为您提供变量中的字符数。