文件 test.txt
有 17 行
方法一 使用 awk
逐行输出行号, tail -n1
获取最后一行的行号, 即总行数
awk '{print NR}'
为每一行打印当前行号。tail -n1
提取最后一个行号作为行数输出
awk '{print NR}' test.txt | tail -n1
17
直接输出最后一行的行号 (文件总行数)
awk
的 END
块在文件结束时执行, 所以 NR
即为文件总行数
awk 'END{print NR}' test.txt
17
方法二 使用 grep
和 awk
为文件每行添加行号, 然后用 awk
取出行号部分, 再通过 tail -n1
获取最后一个行号
grep -n ''
为文件的每一行标记行号。awk -F : '{print $1}'
取出行号部分, tail -n1
返回最后一个行号
grep -n '' test.txt | awk -F : '{print $1}' | tail -n1
17
获取最后一行的行号, 即文件总行数
grep -n ''
作用相同, awk -F : 'END{print $1}'
在处理完文件后取最后的行号
grep -n '' test.txt | awk -F : 'END{print $1}'
17
方法三 使用 sed
显示最后一行的行号 (文件总行数)
-n
抑制默认输出, $
到最后一行, =
打印行号
sed -n '$=' test.txt
17
统计文件的行数, 等同于cat test.txt | wc -l
方法四 使用 wc
直接统计并显示文件行数
wc -l
输出文件行数及文件名
wc -l test.txt
17 test.txt
显示文件的行数, 不输出文件名
awk '{print $1}'
从 wc -l
输出中提取行数部分
wc -l test.txt | awk '{print $1}'
17
将文件内容通过管道传递给 wc -l
, 显示行数
此命令和 wc -l test1.txt
类似, 但增加了 cat
调用
cat test.txt | wc -l
17
原文