【Linux专栏】查看文件行数、输出文件中内容 - 详解
Liunx 相关文档,希望互相学习,
共同进步
1.背景
场景:1)当linux 文件中行数特别多时,打开会非常慢,但只是想知道文件中有多少行。
2)当从大文件中想取第几行到指定文件中,不用打开文件单独抽取第n行内容。
2. 实验 文件行数
2.1 实验:wc -l 或 cat |wc -l
对于简单的行数统计,wc -l是最直接和常用的方法。语法:wc -l 文件名
或者 cat 文件名 |wc -l
wc -l book_test.sh
cat book_test0.sh |wc -l
截图:
![]()

book_test.sh 中有30行数据。
验证:
vim book_test.sh
set nu

发现打开文件有31行,并非统计的30行。
原因:wc -l 默认以换行符(
\n)作为行结束符进行计数。若文件最后一行未以换行符结尾(例如手动输入或编辑时未保存换行),该行将不被统计。
2.2 实验:nl 方式
如果想快速查看有多少行,且要看到最后一行的内容,语法:nl 文件名|tail -n 行数
nl book_test.sh |tail -n 1
nl book_test.sh |tail -n 3
截图:

2.3 实验:grep -c 方式
grep命令用于在文件中搜索指定的模式,并输出匹配的行,语法:grep -c "" filename.txt
grep -c "" book_test.sh

2.4 实验:sed -n '$=' 方式
sed命令用于对文件进行文本处理,通过结合-n选项和$=命令,统计行,
语法:sed -n '$=' filename.txt
sed -n '$=' book_test.sh
![]()
2.5 实验:awk 'END {print NR}' 方式
awk是一种用于处理文本的强大工具,通过使用NR变量,可以统计行数,
语法:awk 'END {print NR}' filename.txt
awk 'END {print NR}' book_test.sh
![]()
3.实验 输出文件中内容 
3.1实验:sed -n 方式
sed(stream editor):强大的文本处理工具,用来处理文件的内容。如:要输出文件的第三行到另一个文件 sed -n '3p' 文件名 > 输出文件名
-n选项告诉sed不输出任何行,3p表示打印第三行
比如查 book_test0.sh 中第10行的内容,打印到 1.sh

sed -n '8p' book_test0.sh >1.dat执行结果:ok
3.2实验:awk 方式
awk:强大的文本处理工具,也可以用来提取文件的特定行如:awk 'NR==3' 文件名 > 输出文件名
NR==3是一个条件,会在当前行号为3时执行默认的打印动作
awk 'NR==8' book_test0.sh >1.dat
执行截图:ok

3.3实验:head tail 方式
虽然不是直接提取第三行,但可通过组合使用
head和tail命令来实现如:head -n 3 文件名 | tail -n 1 > 输出文件名
head -n 3 文件名会输出前3行,
tail -n 1,只输出最后一行,即第三行
head -n 8 book_test0.sh
tail -n 1 book_test0.sh
head -n 8 book_test0.sh|tail -n 1 >1.dat
执行结果截图:

![]()

4.总结
wc -l:常用的命令,用于统计文件中的行数,输出文件的行数以及文件名。
如:wc -l filename.txt
nl:该命令会给文件中的每一行添加行号,并将结果输出到标准输出。通过查看行号的最后一个值,可以得到行数统计。 如:nl filename.txt | tail -n 1
grep -c:grep命令用于在文件中搜索指定的模式,并输出匹配的行。通过使用-c选项,可以统计匹配的行数。 如:grep -c "" filename.txt,还可以输入匹配字符,准确统计
sed -n '$=':sed命令用于对文件进行文本处理,通过结合-n选项和$=命令,可以统计文件的行数。 示例:sed -n '$=' filename.txt
awk 'END {print NR}':awk是一种用于处理文本的强大工具,通过使用NR变量,可以统计行数。 如:awk 'END {print NR}' filename.txt
实验验证:ok 
项目管理--相关知识![]()
项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客
项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客
项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客
Oracle其他文档,希望互相学习,
共同进步
Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客
oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客
ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-CSDN博客


浙公网安备 33010602011771号