linux文件操作之cat、more、less、head、tail、wc命令

一,cat命令

1,可选参数

-A, --show-all 等价于 -vET

-b, --number-nonblank 对非空输出行编号

-e 等价于 -vE

-E, --show-ends 在每行结束处显示 $

-n, --number 对输出的所有行编号

-s, --squeeze-blank 不输出多行空行

-t 与 -vT 等价

-T, --show-tabs 将跳 字符显示为 ^I

-u (被忽略)

-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

2,cat一般作为查看文件命令,也可以用来创建文件

[[email protected] test]# cat > test.txt
这里是第一行
 
这里是第三行,第二行是空行
这里是第四行
^C
[[email protected] test]# cat test.txt
这里是第一行
 
这里是第三行,第二行是空行
这里是第四行
[[email protected] test]# cat test.txt/etc/passwd >test2.txt
[[email protected] test]# cat test2.txt
这里是第一行
 
这里是第三行,第二行是空行
这里是第四行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
。。。。。。。。。#此处省略

3,使用cat查看文件

[[email protected] test]# cat test.txt
这里是第一行
 
这里是第三行,  第二行是空行
这里是第四行,   这里有个tab键
 
 
这里是第7行,第5,6行为空行
[[email protected] test]# cat -nT test.txt #对每行均显示编号
    1  这里是第一行
    2
    3  这里是第三行,^I第二行是空行
    4  这里是第四行,^I这里有个tab键
    5
    6
    7  这里是第7行,第5,6行为空行
[[email protected] test]# cat -bT test.txt 忽略空行编号
    1  这里是第一行
 
    2  这里是第三行,^I第二行是空行
    3  这里是第四行,^I这里有个tab键
 
 
    4  这里是第7行,第5,6行为空行
[[email protected] test]# cat -sT test.txt #-s多个空行时只显示单个空行
这里是第一行
 
这里是第三行,^I第二行是空行
这里是第四行,^I这里有个tab键
 
这里是第7行,第5,6行为空行
[[email protected] test]# cat -snT test.txt
    1  这里是第一行
    2
    3  这里是第三行,^I第二行是空行
    4  这里是第四行,^I这里有个tab键
    5
    6  这里是第7行,第5,6行为空行
[[email protected] test]# cat -bnT test.txt
    1  这里是第一行
 
    2  这里是第三行,^I第二行是空行
    3  这里是第四行,^I这里有个tab键
 
 
    4  这里是第7行,第5,6行为空行

二、more 命令

1,常用可选参数

[[email protected] test]# more -2 test.txt #-n自定义屏幕大小为n行,即n行n行分页显示
这里是第一行
 
这里是第三行,  第二行是空行
这里是第四行,   这里有个tab键
 
 
这里是第7行,第5,6行为空行
[[email protected] test]# more +3 -s test.txt#+n 从第n行开始显示,-s多个空行时显示一行。
这里是第三行,  第二行是空行
这里是第四行,   这里有个tab键
 
这里是第7行,第5,6行为空行

-c:从底部清屏,然后显示,-p也是类似效果。

2,常用操作,与cat区别在于,more能够分页显示,按进度一页一页显示出来,而cat是一次性全部打印出来。故more更多通过键盘控制阅读。需要多用就会记得啦。

1)Enter :向下翻一行,其实可以自定义的,只是默认每按一次Enter翻一行。

2)Ctrl+F:向下滚动一屏,组合键,f不区分大小写。也可以直接按“SPASE”键实现。

3)Ctrl+B:同Ctrl +F对立,向上翻一屏。

4)v :直接调用vi编辑器。

5)!命令:看到一半是敲个shell命令。

6)q:不想看下去了,按q键退出。与man命令一样,man也是按q退出。当然也可以通过Ctrl+c直接暴力掐断。

3,实际使用还是用的常用操作比较多,比方说一般都是直接按“SPASE”键翻页,很少按Ctrl+f去翻页,以及按Eneter键一行一行翻。

还有比较方便的是可以与其他命令通过管道方式配合使用

#查看/etc/下文件,但是比较多,可以通过more实现翻页显示
[[email protected] test]# ll /etc/ |more +2 -4#从第二行开始读,每次读4行。
drwxr-xr-x. 3 root root    4096 Sep  3 05:42 abrt
drwxr-xr-x. 4 root root    4096 Sep  3 05:55 acpi
-rw-r--r--. 1 root root      44 Sep  3 22:25 adjtime
-rw-r--r--. 1 root root    1512 Jan 12  2010 aliases
--More—

三、less 命令

1,less命令与more命令类似都是通过翻页来查看文件的。

-e:当文件显示结束后,自动退出。默认退出是需要按q退出的。

-m:显示进度百分比。

[[email protected] test]# less -me /etc/shadow#-me组合可以得到more命令的效果。

-N:显示行号,在cat中是使用-n来实现。

-s:前面cat、more都讲过,多个连续空行时,显示一行。

-x 数字:将“TAB”键显示为规定的数字空格。

2,常用操作

/字符串:向下搜索

?字符串:向上搜索

d:向后翻半页,联想down。与之对应的u,up向上翻半页。

f:向后翻一页。

b:向前翻一页,联想back,向回退翻一页。

q:退出,man、more均通用。

u:向上翻半页,up之意。

空格键:向后翻一页。

Enter:滚动一行。

3,实例

通过管道技术实现分页显示

[[email protected] test]# ll -l /etc/ |less –eNm

四、head 命令

1,先来man下head。

-n 显示行数

-c 显示字节数

-q 隐藏文件名

2,常用实例

[[email protected] test]# head -n 3 test.txt #只打印前3行
这里是第一行
 
这里是第三行,  第二行是空行
[[email protected] test]# head -n -3 test.txt#打印开始到倒数第4行,就是把倒数3行砍掉。
这里是第一行
 
这里是第三行,  第二行是空行
这里是第四行,   这里有个tab键
[[email protected] test]# head -c 10 test.txt#同样只打印前10个字节。
这里是[email protected] test]#
[[email protected] test]# head -c -10 test.txt#将倒数10个字节砍掉。
这里是第一行
 
这里是第三行,  第二行是空行
这里是第四行,   这里有个tab键
 
 
这里是第7行,第5,6行[[email protected] test]#

五、tail 命令

1,tail命令与head命令相对应,用法也类似,只是tail参数多一些,tail读取倒数

-n:按行计算

-c:按字节位置

-m:多字节计算

-k:按文件大小k来计算

-f:循环读取,实现实时更新显示

-s:配合-f使用,表示每次更新时间

2,实例

#读取倒数4行
[[email protected] test]# tail -n 4 test.txt
这里是第四行,   这里有个tab键
 
 
这里是第7行,第5,6行为空行
#从第4行开始读到最后
[[email protected] test]# tail -n +4 test.txt
这里是第四行,   这里有个tab键
 
 
这里是第7行,第5,6行为空行
#实现实时读取并且更新时间为每2s一次
[[email protected] test]# ping 192.168.1.1>ping.log &
[1] 8835
[[email protected] test]# tail -f -s 2ping.log
64 bytes from 192.168.1.1: icmp_seq=6ttl=64 time=1.90 ms
64 bytes from 192.168.1.1: icmp_seq=7ttl=64 time=2.77 ms
64 bytes from 192.168.1.1: icmp_seq=8ttl=64 time=1.92 ms
64 bytes from 192.168.1.1: icmp_seq=9ttl=64 time=1.91 ms
64 bytes from 192.168.1.1: icmp_seq=10ttl=64 time=2.42 ms
64 bytes from 192.168.1.1: icmp_seq=11ttl=64 time=2.68 ms

六、wc:print newline, word, and byte counts for each file。即统计文件字节数、字数、行数。

1,可选参数

-c 统计字节数。

-l       统计行数。

-m    统计字符数,注意与-c的区别,并且不能与-c同时使用。

-w     统计字数,“字”指被空白、跳格或换行符分割的字符串。

-L      打印最长行的长度。

2,实例

[[email protected] test]# cat test5.txt
1 a
23 bc
456 def
7890 hijk
[[email protected] test]# wc test5.txt
 4  8 28test5.txt
#4表示行数,8个单词(字),28个字节。
#对比-c,-m和-w的区别
[[email protected] test]# less test7.txt
一
二三
四五六
七八九零
[[email protected] test]# wc -c test7.txt
34 test7.txt
[[email protected] test]# wc -m test7.txt
14 test7.txt
[[email protected] test]# wc -w test7.txt
4 test7.txt
#不想显示文件名的实现
[[email protected] test]# wc -m test.txt |cut-d ‘ ‘ -f 1
58
[[email protected] test]# cat test.txt |wc -m
58
#统计目录下文件数
[[email protected] test]# ll
total 48
-rw-r--r--. 1 root root  6065 Sep 8 09:16 ping.log
-rw-r--r--. 1 root root  2196 Sep 7 10:52 test2.txt
-rw-r--r--. 1 root root  3561 Sep 7 11:28 test3.txt
-rw-r--r--. 1 root root 14341 Sep  7 11:57 test4.txt
-rw-r--r--. 1 root root    28 Sep 8 09:50 test5.txt
-rw-r--r--. 1 root root     6 Sep 8 09:53 test6.txt
-rw-r--r--. 1 root root    34 Sep 8 09:58 test7.txt
-rw-r--r--. 1 root root   140 Sep 7 14:03 test.txt
[[email protected] test]# ll |sed ‘1d‘ |wc -l
8

总结:

cat、more、less都可以读文件内容,但cat不支持分页显示。more与less支持分页显示,more还能通过-n(-数字)自定义每n行分页,more可以同ctrl+B,F上下翻页,less可以直接按B,F,D,U键直接翻页。less还可以通过-e(显示完退出),-m(显示百分比进度)实现more类似效果。想要显示行号less–N,cat –n。less通过/,?后面直接跟字符串实现上下查找。

head和tail用法类似,都可以通过-n 参数读取行数,但是head–3与head –n 3一样读前3行,head –n -3则表示砍掉最后三行。tail –n 3表示读最后三行,tai –n +3表示从第3行开始到最后。

时间: 2024-10-19 17:34:58

linux文件操作之cat、more、less、head、tail、wc命令的相关文章

linux文件操作

1.linux文件操作 cat test.txt | head -n 100 查看开始100行 cat finalout.txt | head -n 100 | cut -d , -f 2   安装,分割各行,取第2个位置的数据 cat test.txt |sed 's/""//g' 查看下效果 cat finalout.txt | head -n 10 | cut -d , -f 2 按,切割 cat part_name_tmp.txt | cut -d \" -f 2 &

Linux文件操作相关函数

一.整体大纲 st_mode整体介绍: st_mode详细介绍: 二. Linux文件操作相关函数 1. stat 作用:获得文件信息,也可以获取文件大小. 头文件 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> 函数原型 int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); i

关于Linux文件操作1.1

本文章记录本人在学习Linux中遇到的一些比较好的题目,给大家分享一下. 先来实验题目: 编程实现一个程序,功能是每一秒钟向屏幕打印当前系统时间,和当前行号示例如下 该程序应该无限循环,直到强制中断该进程为止(比如按Ctrl-C中断程序).接着再启动程序,将系统时间追加到原文件之后,并且序号能够接续上次的序号: 好了看完题目后我们应该想的是,实现这么一个功能我们需要什么知识? 我们实现功能的逻辑是什么? 我们在写代码中有什么细节需要注意的(PS:使代码尽善尽美!) a):  先花五分钟想一下这个

Linux文件操作学习总结【转载】

本文转载自: http://blog.csdn.net/xiaoweibeibei/article/details/6556951 文件类型:普通文件(文本文件,二进制文件).目录文件.链接文件.设备文件.管道文件. 文件的权限:读.写.执行 文件的相关信息:目录结构.索引节点.文件数据 索引节点的stat结构 struct stat{ dev_t st_dev;//文件使用的设备号 ino_t st_inl;//索引节点号 mode_t st_mode;//文件访问权限 nlink_t st_

Linux 文件操作总结

http://blog.163.com/he_junwei/blog/static/19793764620152592737741/ ioctl?? lseek?? 文件是linux中的一个重要概念.在Linux中,一切(几乎一切)都是文件.简单的说,C中基本的的printf()函数,scanf()函数,其实都属于文件操作. 对于文件操作,虽然都是通过函数调用的方式实现,却还是能分为两类:系统调用和库函数. 这篇文章将先介绍linux中文件的概念,系统调用和库函数的概念 ,然后具体的讨论两种方式

Linux 文件操作监控inotify功能及实现原理【转】

转自:http://blog.chinaunix.net/uid-26585427-id-5012973.html 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug.udev 和 inotify 就是

Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od

cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只看尾巴几行 od 以二进位的方式读取文件内容! cat (concatenate) [[email protected] ~]# cat [-AbEnTv] 选项与参数: -A :相当於 -vET 的整合选项,可列出一

Linux文件操作的常用系统函数说明

1. open打开文件 (man 2 open 查看) int open(const char *pathname, int flags); //pathname文件名(路径):flags打开模式,有O_RDONLY, O_WRONLY, O_RDWR int open(const char *pathname, int flags, mode_t mode); //该函数一般用于创建新文件,flags添加O_CREAT,比如:O_RDWR|O_CREAT int creat(const cha

linux 文件操作库函数

fopen :打开文件 fread :读文件 fwrite : 写文件 fgetc : 读字符 fputc : 写字符 fscanf : 格式化读 fprintf : 格式化写 fseek : 文件偏移量定位 getcwd .getwd.get_current_dir_name : 获取当前路径 mkdir : 创建目录 feof : 检测文件尾 ferror : 检测文件操作是否成功 fileno : 将文件指针转换为文件描述符