通过shell脚本计算文件中的字符数

Shw*_*eta 63 linux shell

我想检查文件中的字符数从开始到EOF字符.任何人都可以通过shell脚本告诉我如何做到这一点

Pau*_*ce. 96

这样做:

wc -c filename
Run Code Online (Sandbox Code Playgroud)

如果只想在输出中重复没有文件名的计数:

wc -c < filename
Run Code Online (Sandbox Code Playgroud)

编辑:

使用-m数字符而不是字节(如图塞巴斯蒂安的答案).

  • [Sébastien](http://stackoverflow.com/questions/5026214/counting-no-of-characters-in-a-file-through-shell-script/5026237#5026237)对多字节文件的回答是重点. (4认同)

Séb*_*nec 23

#!/bin/sh

wc -m $1 | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

wc -m计算字符数; 该awk命令仅打印字符数,省略文件名.

wc -c 会给你字节数(可以与字符数不同,因为根据编码你可能有几个字节编码的字符).

  • 让wc从stdin而不是文件(`wc -m <"$ 1"`)读取意味着你不必通过awk管道输出来删除文件名. (3认同)

use*_*.py 7

要获得字符串的准确字符数,请使用 printf,而不是 echo、cat 或直接在文件上运行 wc -c,因为使用 echo、cat 等会计算换行符,这将为您提供字符数,包括换行符。因此,如果您使用 echo 等,带有文本“hello”的文件将打印 6,但如果您使用 printf 它将返回精确的 5,因为没有换行元素可计数。

如何使用 printf 计算字符串中的字符数:

$printf '6chars' | wc -m
6
Run Code Online (Sandbox Code Playgroud)

要将其转换为可以在文本文件上运行以计算字符数的脚本,请将以下内容保存在名为 print-character-amount.sh 的文件中:

#!/bin/bash
characters=$(cat "$1")
printf "$characters" | wc -m
Run Code Online (Sandbox Code Playgroud)

chmod +x 在包含上述文本的文件 print-character-amount.sh 上,将该文件放置在您的 PATH 中(即 /usr/bin/ 或在 .bashrc 文件中导出为 PATH 的任何目录),然后在文本文件类型上运行脚本:

print-character-amount.sh file-to-count-characters-of.txt
Run Code Online (Sandbox Code Playgroud)


Vij*_*jay 5

awk '{t+=length($0)}END{print t}' file3
Run Code Online (Sandbox Code Playgroud)