Linux常用命令(三)_查看文件内容

文章目录

    • 1.cat_从第一行输出,不分页
    • 2.tac_从最后一行开始输出,不分页
    • 3.more/less_可控制从第几行开始输出,可自定义每页显示几行
    • 4.head/tail_可以输出任意行
    • 5.sed_p输出任意行

1.cat_从第一行输出,不分页

//正向查看一个文件,即从文件的第一行开始输出
 cat text1
 //将text1和text2合并后放入text文件中
 cat text1 text2 > text     

2.tac_从最后一行开始输出,不分页

从文件最后一行开始反向查看内容
tac file

3.more/less_可控制从第几行开始输出,可自定义每页显示几行

More和less的差别:less可以快速定位到最后一页。

//显示文件中从第三行起的内容
more +3 text1
//每页显示2行
more -2 text1
//ls命令,管道,more命令并用
ls -l | more -5

more:
回车:向下n行,需要定义,默认为1行。
空格键:向下滚动一屏或Ctrl+F
B:返回上一层或Ctrl+B
q:退出more

less:
回车:向下一行。
空格键:前下一页或page down。
b:后退一页 或 page up。
q:退出。
d:前进半页。
u:后退半页

Linux常用命令(三)_查看文件内容_第1张图片

4.head/tail_可以输出任意行

命令语法:head/tail [参数] [文件]
实例:

head:显示文件的前几行,默认10行  
head -n 3  ==   head -3    可以直接跟行数
head -n 5 text             //显示text文件的前5行。
head -c 3 text    	     //显示text文件的前3个字符。
head -n -5 text       //显示除了最后5行之外的所有行

tail: 显示文件最后几行,默认10行
tail -n 4 log   				//显示log文件的最后4行
tail -n +7 log 				//log文件从第7行开始显示。

5.sed_p输出任意行

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

命令语法:sed [-nefr] [动作]
选项:

option 功能
-n 使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e 直接在命令列模式上进行 sed 的动作编辑;
-f 直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r sed 的动作支持的是延伸型正规表示法的语法
-i 直接修改读取的文件内容,而不是输出到终端。

动作说明:

function 功能
a 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d 删除,因为是删除,所以 d 后面通常不接其他;
i 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p 列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s 取代,通常这个 s 的动作可以搭配正规表示法
//只查看文件的第5行到第10行
sed -n '5,10p' file   									
//删除第3行到最后一行
nl  /etc/passwd | sed '3,$d'   					   
 //在第二行前加入drink tea
nl  /etc/passwd | sed '2i drink tea'          
//在第二行后加入drink tea
nl  /etc/passwd | sed '2a drink tea'         
// 在第二行后增加两行
nl  /etc/passwd | sed '2a Drink tea or ......\
> drink beer ?'         
//将第2-8行内容替换为 Never say ever 
nl  /etc/passwd| sed  '2,8c Never say ever'							

如果文件特别大,有1000w行,要在第567行加文字,使用vim可能会疯掉。用sed!
sed -i ‘567a # The text add’ file.txt

你可能感兴趣的:(linux,linux)