将字数统计结果附加到文件末尾

将字数统计结果附加到文件末尾

我想计算行数example.txt并将结果附加到该文件的末尾。我怎样才能做到这一点?

我试过:

wc -l > example.txt

答案1

wc -l example.txt >> example.txt

答案2

如您所知,wc -l 默认情况下包含结果编号和文件名。如果由于某种原因最好只显示结果数字,请尝试以下操作:

wc -l example.txt | cut -d' ' -f1 >> example.txt

因此,如果 example.txt 仅以 3 行开头,例如:

a
b
c

运行上述命令后,使用tail查看最后几行(在本例中行数很少,因此它查看整个文件)您会看到:

$ tail example.txt
a
b
c
3

解释

  • 您已经知道wc -l example.txt哪个给出了默认结果行数和文件名,例如3 example.txt
  • cut命令有助于从行中提取“字段”
  • 用于-d设置分隔符/字段分隔符,我们指定为' '空格。
  • -f1方法选择第一个字段,因此给定的wc输出是3 example.txt3一个字段
  • >>附加,因此它将结果保存3到文件末尾example.txt

答案3

以下脚本将行计数添加到文件末尾(如果尚不存在),但如果已经存在行计数,则将其删除并替换。

这允许您在每次编辑文件时运行此脚本,而无需添加多个“行数:”行。

#! /bin/bash

count=$(wc -l "$1" | cut -d' ' -f1)

tail -1 "$1" | grep -q '^Line count: '
if [ $? ]; then
    count=$(( $count - 1 )) # don't count the 'Line count' line
    sed -i -e '$ d' "$1"
    echo "Line count: $count" >> "$1"
else
    echo "Line count: $count" >> "$1"
fi

答案4

追加仅有的行数,你可以试试这个

$ cat example.txt | wc -l >> example.txt

这只会显示文件中的总行数

相关内容