Linux命令备忘实例(4)——获取内容
来源:互联网 发布:香奈儿bleu 知乎 编辑:程序博客网 时间:2024/06/06 01:25
Linux中的所有内容都是以文件的方式表示的,会有很多需求需要我们获取文件的内容,查看部分或者全部内容。当然最直接方式就是使用编辑器打开文件查看,比如vim、vi、emacs等。这里主要关注的是shell命令中获取文件内容的部分。
1.cat
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示。
1.命令概览
在文件内容比较少的时候,可以直接使用cat命令打印出来或者使用管道符传递给后续命令处理文件内容。当然,cat也可以传入多个文件名,将多个文件的内容合并。一般文件内容行数超过40行时,使用cat不宜将内容输出到屏幕。
2.特性实例说明
- -E(end)选项可以显示出结束字符,用“$”字符表示结束
- -T(tab)选项可以显示tab字符,用“^I”字符表示tab
- -s(squeeze)可以压缩连续的空行为一行
使用-v选项可以显示出所有非可打印字符,结合上述字符就是-t选项等于-vT,-e选项等于-vE。最后-A可以显示所有字符,也就是-vET的合体。
user@ubuntu:~$ cat -E test123$ $$456user@ubuntu:~$ cat -T test123$^I$$456user@ubuntu:~$ cat -s test123456user@ubuntu:~$ cat -a test123$^I$$456
另外还支持显示文件的行号,使用-n显示行号直接从第一行开始编号,对空行也计数。但是如果需要统计有效内容行数,可以使用-b选项跳过所有空行编号,只对有内容的行编号。
user@ubuntu:~$ cat -n test 1 123 2 3 4 456user@ubuntu:~$ cat -b test 1 123 2 3 456
空行的定义是没人任何除换行符之外的字符的行,上述测试文件中第二行有一个tab字符也是算为有内容的行,从而也进行编号了。
3.衍生tac
tac是cat命令逆序的字符串,意义就是和cat命令的功能相反。从文件的最后一行进行依次输出,直到文件第一行为止。
2.nl
1.常用内容
nl命令在linux系统中用来计算文件中行号,当然也是直接输出文件内容。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。常用选项如下:
-b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n :列出行号表示的方法,主要有三种: -n ln :行号在萤幕的最左方显示; -n rn :行号在自己栏位的最右方显示,且不加 0 ; -n rz :行号在自己栏位的最右方显示,且加 0 ; -w : 行号栏位的占用的位数,默认为6位。 -p : 在逻辑定界符处不重新开始计算
完整选项如下:
user@ubuntu:~$ nl -b t test 1 123 2 3 456user@ubuntu:~$ nl -n ln test1 1232 3 456user@ubuntu:~$ nl -n rz test000001 123000002 000003 456user@ubuntu:~$ nl -n rz -w 2 test01 1230203 456user@ubuntu:~$ nl -n ln -i 2 test1 1233 5 456user@ubuntu:~$ nl -n rn -s 'row:' test 1row:123 2row: 3row:456
nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。 -i可以设置行号增量,默认为1。-s可以设置插入到行号后的字符串。
2.扩展
输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。-p选项设置后nl命令将从每个逻辑页开始重新编号,-d可以设置逻辑页的分隔符。另外,-f和-h选项可以设置逻辑页的页脚、页头的格式。
3.od
上述命令将文件输出到屏幕或者是管道符,但是都是非二进制文件。如果遇到二进制文件,上述命令会出现乱码,此时可以使用od这个命令来查看二进制文件的字节信息。
1.命令概览
最常用的选项就是-t,后接各种类型来进行输出,当然也有为了保持兼容的传统选项,上图中可以看出能用-t TYPE的各种方式构建出来。各种类型如下:
a:利用默认字符输出 c:ASCII字符或者转义字符表示 d[SIZE]:利用有符号十进制(decimal)数输出数据,每个数占用SIZE个字节 f[SIZE]:利用浮点数输出数据,每个数占用SIZE个字节 o[SIZE]:利用八进制输出数据,每个数占用SIZE个字节 u[SIZE]:利用无符号十进制数表示,每个数占用SIZE个字节 x[SIZE]:利用十六进制数表示,每个数占用SIZE个字节SIZE:是一个数字,用字符表示。当TYPE是d/o/u/x时,有如下选项: C : sizeof(char) S : sizeof(short) I : sizeof(int) L : sizeof(long)当TYPE是f时,为如下选项: F : sizeof(float) D : sizeof(double) L : sizeof(long double)
-N选项可以指定读取的二进制字节数目,-j选项可以指定跳过开头的指定书目字节。-S BYTES指定输出至少BYTES个可打印字符。-w可以指定每行打印的字节数目。-A选项的RADIX指定文件的偏移量输出格式:d(decimal)、x(hex)、o(oct)、n(none),默认格式为八进制表示。
user@ubuntu:~$ od -t x1 -N 16 -A x /usr/bin/od000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00000010user@ubuntu:~$ od -t x1 -N 12 -Ax -j4 /usr/bin/od000004 01 01 01 00 00 00 00 00 00 00 00 00000010user@ubuntu:~$ od -t x1 -N 16 /usr/bin/od0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 000000020user@ubuntu:~$ od -t xCc -N16 /usr/bin/od0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 177 E L F 001 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \00000020
对-t选项后面可以接多个类型,从而可以进行对照查看,x选项显示十六进制表示,c表示对于的ASCII表示。另外,所有的BYTES参数,默认不带单位就是字节,可以加上b(512)、kB(1000)、K(1024)、MB(1000*1000)、M(1024*1024)、GB/G/TB/T/PB/P/EB/E/ZB/Z/YB/Y。
使用 od命令对直接查看二进制文件格式,查阅字节信息的开发者来说非常有用。
- Linux命令备忘实例(4)——获取内容
- Linux命令备忘实例(11)——首尾获取
- Linux命令备忘实例(1)——终端输出
- Linux命令备忘实例(2)——变量
- Linux命令备忘实例(3)——数学运算
- Linux命令备忘实例(10)——目录管理
- Linux命令备忘实例(12)——文件管理
- Linux命令备忘实例(13)——文件操作
- Linux命令备忘实例(14)——sed
- Linux命令备忘实例(17)——cURL
- Linux命令备忘实例(5)——切取命令
- Linux命令备忘实例(6)——排序和基本统计命令
- Linux命令备忘实例——系列说明
- Linux命令备忘实例(15)——awk(1/2)
- Linux命令备忘实例(16)——awk(2/2)
- Linux命令备忘实例(7)——双向重定向与字符操作
- Linux命令备忘实例(8)——文件校验、分割与临时文件
- Linux命令备忘实例(9)——参数代换xargs
- 黑马程序员---IO流(IO流简介、字符流FileWriter与FileReader实例)
- HDU1520 TreeDp 入门
- OpenWRT新建普通用户+权限设置+免密码登录(ssh公钥验证)
- 拓扑排序
- 哈希
- Linux命令备忘实例(4)——获取内容
- Webstorm & PhpStorm的序列号和证书
- char*与char[]
- POJ 1004 Financial Management
- 关于拷贝构造函数
- C++利用模板实现队列
- GukiZ and Contest
- HashMap的实现原理
- 新起点