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命令对直接查看二进制文件格式,查阅字节信息的开发者来说非常有用。

0 0