我想计算行数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.txt
第3
一个字段 >>
附加,因此它将结果保存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
这只会显示文件中的总行数