我的文件行的格式为:1,4,2,3,2等 我想计算这一行中的元素(数字)的数量。我尝试使用wc命令,但是wc -L似乎计算了我的行中的所有元素(包括逗号),wc返回行数。我怎样才能得到我想要的结果?
答案 0 :(得分:2)
如果您想获得一行的数字(即“单词”):
echo '1, 2, 3, 4, 5' | wc -w
这将输出5
。
如果您想获得给定文件中每一行的计数,可以在while
循环中执行此操作:
while read line; do echo $line | wc -w; done < your_file
这将在新行上输出文件中每行的计数(因此,第一行输出行对应于文件中的第一行等)。
如果您的行不包含空格并且直接以逗号分隔,例如1,2,3,4,5
,则可以使用tr
将逗号替换为空格,以使“单词计数”功能具有相同的方式:
echo '1,2,3,4,5' | tr ',' ' ' | wc -w
或
while read line; do echo $line | tr ',' ' ' | wc -w; done < your_file
答案 1 :(得分:1)
使用wc -w
计算单词。还有-c表示字节,-l表示行,-m表示字符。 -L代表最长线的长度。
答案 2 :(得分:1)
在计算数字之前删除,
:
cat file | tr -d ',' | wc -c
(wc -c
计算文件/流中的字符数。)
但是,仅当数字都是单个数字时才会起作用。如果没有,我会使用awk
:
awk -FS',' '{c+=NF}END{print c}' file