Linux文本处理
Linux文本处理:查看文本内容
### head 在屏幕上显示指定文件的开头若干行 - 语法 :head(选项)(参数) - 选项 - **-n<数字>:**指定显示头部内容的行数; - **-c<字符数>:**指定显示头部内容的字符数; - **-v:**总是显示文件名的头信息; - **-q:**不显示文件名的头信息。 - 参数 文件列表:指定显示头部内容的文件列表。 ## tail 在屏幕上显示指定文件的末尾若干行 - 语法:tail(选项)(参数) - 选项 - **-\-retry:**即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用; - **-c:**输出文件尾部的N(N为整数)个字节内容; - **-f:**显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效; - **-F:**与选项“-follow=name”和“--retry"连用时功能相同; - **-n:**输出文件的尾部N(N位数字)行内容。 - **-\-pid=<进程号>:**与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令; - **-q:**当有多个文件参数时,不输出各个文件名; - **-s<秒数>:**与“-f”选项连用,指定监视文件变化时间隔的秒数; - **-v:**当有多个文件参数时,总是输出各个文件名; - 参数 文件列表:指定要显示尾部内容的文件列表。 - 实例 ```shell tail file #显示文件file的最后10行 tail +20 file #显示文件file的内容,从第20行至文件末尾 tail -c 10 file #显示文件file的最后10个字符 tail -f /var/log/messages #实时查看被添加到一个文件中的内容 ``` ### cat 用于连接文件并打印到标准输出设备上 - 语法:cat [-AbeEnstTuv] fileName - 参数: - -n :由 1 开始对所有输出的行数编号。 - -b :和 -n 相似,只不过对于空白行不编号。 - -s :当遇到有连续两行以上的空白行,就代换为一行的空白行。 - -v:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 - -E : 在每行结束处显示 $。 - -T : 将 TAB 字符显示为 ^I。 - -A:等价于 -vET。 - -e:等价于"-vE"选项; - -t:等价于"-vT"选项; - 实例: ```shell cat filename #查看filename内容 cat filename | tail -n 100 # 显示文件最后100行 cat filename | head -n 100 # 显示文件前面100行 cat filename | tail -n +100 # 从100行开始显示,显示100行以后的所有行 cat filename | head -n 500 | tail -n +100 # 显示100行到500行 ``` ### nl 为输出列加上编号 - 语法:nl [选项]... [文件]... - 选项 - -b a 无论是否是空行都列出行号 - -b t 空行不列出行号(默认)。 - -n ln 行号在显示栏的最左边显示。 - -n rn 行号在显示栏的最右边显示,不填充0。 - -n rz 行号在显示栏的最右边显示(默认)。 - -w 行号显示栏占用的位数,(默认是6位)。 - -p 在逻辑定界符处不重新开始计算 - 实例 ```shell nl rumenz.txt #用nl列出rumenz.txt的行号 nl -b a rumenz.txt #用nl列出rumenz.txt的行号,包括空行 nl -b a -n rz rumenz.txt #行号前面填充0 nl -b a -n rz -w 3 rumenz.txt #行号显示栏占3位,并且填充0 nl -s :: rumenz.txt #使用定制的编号分隔符 ``` ### less 分屏上下翻页浏览文件内容 - 语法:less(选项)(参数) - 选项 - **-e:**文件内容显示完毕后,自动退出; - **-f:**强制显示文件; - **-g:**不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度; - **-l:**搜索时忽略大小写的差异; - **-N:**每一行行首显示行号; - **-s:**将连续多个空行压缩成一行显示; - **-S:**在单行显示较长的内容,而不换行显示; - **-x<数字>:**将TAB字符显示为指定个数的空格字符。 - 参数 文件:指定要分屏显示内容的文件。 ### more 显示文件内容,每次显示一屏 - 语法:more(语法)(参数) - 选项 - **-<数字>:**指定每屏显示的行数; - **-d:**显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”; - **-c:**不进行滚屏操作。每次刷新这个屏幕; - **-s:**将多个空行压缩成一行显示; - **-u:**禁止下划线; +<数字>:从指定数字的行开始显示。 - 参数 文件:指定分页显示内容的文件 - 实例 ```shell #显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。 more -dc file #显示文件file的内容,每10行显示一次,而且在显示之前先清屏。 more -c -10 file ``` 按Space键:显示文本的下一屏内容。 按Enier键:只显示文本的下一行内容。 按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。 按H键:显示帮助屏,该屏上有相关的帮助信息。 按B键:显示上一屏内容。 按Q键:退出rnore命令。 ### tac 从最后一行开始反向查看一个文件的内容 - tac 刚好是将 cat 反写过来,所以他的功能就跟 cat 相反啦, cat 是由“第一行到最后一行连续显示在屏幕上”,而 tac 则是“ 由最后一行到第一行反向在屏幕上显示出来 - 语法:tac(语法)(参数) - 选项 - **-b:**在之前而不是之后连接分隔符。 - **-r:**将分隔符作为基础正则表达式(BRE)处理。 - **-s:**使用STRING作为分隔符代替默认的换行符。 - 参数 文件:指定分页显示内容的文件 - 实例 ```shell # 一个接着一个字符的反转一个文件: tac -r -s 'x\|[^x]' test.log ``` ### strings 在文件中查找可打印的字符串 - strings命令对识别随机对象文件很有用 - 语法 : strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ] [ file ... ] - 选项 - -a :扫描整个文件而不是只扫描目标文件初始化和装载段 - -f :在显示字符串前先显示文件名 - -n :找到并且输出所有NUL终止符序列 - -:设置显示的最少的字符数,默认是4个字符 - -t -\-radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制 - -o :类似--radix=o - -T :指定二进制文件格式 - -e -\-encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit - @ :读取中选项 - 实例 ```shell strings /bin/ls #列出ls中所有的ASCII文本 cat /bin/ls strings #列出ls中所有的ASCII文本 strings /bin/ls | grep -i libc #查找ls中包含libc的字符串,不区分大小写 ``` ### fmt 读取文件后优化处理并输出 - fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为"-",则fmt指令会从标准输入设备读取数据 - 语法:fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...] - 参数说明: -c 每段前两列缩排。 -p<列起始字符串> 仅合并含有指定字符串的列,通常运用在程序语言的注解方面。 -s 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列。 -t 每列前两列缩排,但第1列和第2列的缩排格式不同。 -u 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔。 -w<每列字符数> 设置每列的最大字符数。 - 实例 ```shell fmt testfile #重排testfile 文件 fmt -w 85 testfile #排成85 个字符一行,并在标准输出设备上输出 ``` ### fold 控制文件内容输出时所占用的屏幕宽度 - fold指令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备。若不指定任何文件名称,或是所给予的文件名为"-",则fold指令会从标准输入设备读取数据。 - 语法:fold [-bs][-w<每列行数>][--help][--version][文件...] - 参数: -b 以Byte为单位计算列宽,而非采用行数编号为单位。 -s 以空格字符作为换列点。 -w<每列行数> 设置每列的最大行数。 ### uniq 检测文件中的重复行 - 检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用,这时需要使用 sort。 - 语法 uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件] - 参数: -c 在每列旁边显示该行重复出现的次数。 -d 仅显示重复出现的行列。 -f<栏位> 忽略比较指定的栏位。 -s<字符位置> 忽略比较指定的字符。 -u 仅显示出一次的行列。 -w<字符位置> 指定要比较的字符。 - 例子 ```shell uniq -c testfile #删除重复行后的内容 sort testfile1 | uniq -c #统计各行在文件中出现的次数 sort testfile1 | uniq -d #在文件中找出重复的行 ``` ### look 用于查询单词,显示文件中以指定字符串开头的任意行 - 语法:look [-adf][-t<字尾字符串>][字首字符串][字典文件] - 选项 -a 使用另一个字典文件web2,该文件也位于/usr/dict目录下; -d 只对比英文字母和数字,其余一概忽略不予比对; -f 忽略字符大小写差别; -t<字尾字符串> 设置字尾字符串。 - 示列 ```shell # 查找在testfile文件中以字母L开头的所有的行 look L testfile ``` ### od 输出文件的八进制、十六进制等格式编码的字节 - 语法:od(选项)(参数) - 选项 - -a:此参数的效果和同时指定“-ta”参数相同; - -A:<字码基数>:选择以何种基数计算字码; - -b:此参数的效果和同时指定“-toC”参数相同; - -c:此参数的效果和同时指定“-tC”参数相同; - -d:此参数的效果和同时指定“-tu2”参数相同; - -f:此参数的效果和同时指定“-tfF”参数相同; - -h:此参数的效果和同时指定“-tx2”参数相同; - -i:此参数的效果和同时指定“-td2”参数相同; - -j<字符数目>或--skip-bytes=<字符数目>:略过设置的字符数目; - -l:此参数的效果和同时指定“-td4”参数相同; - -N<字符数目>或--read-bytes=<字符数目>:到设置的字符树目为止; - -o:此参数的效果和同时指定“-to2”参数相同; - -s<字符串字符数>或--strings=<字符串字符数>:只显示符合指定的字符数目的字符串; - -t<输出格式>或--format=<输出格式>:设置输出格式; - -v或--output-duplicates:输出时不省略重复的数据; - -w<每列字符数>或--width=<每列字符数>:设置每列的最大字符数; - -x:此参数的效果和同时指定“-h”参数相同; - 参数 文件:指定要显示的文件。 - 实例 ```shell [linuxde@localhost ~]$ echo abcdef g > tmp [linuxde@localhost ~]$ cat tmp abcdef g ``` ### hexdump 显示文件十六进制格式 - 语法:hexdump [选项] [文件] - 选项 ```shell - -n length 只格式化输入文件的前length个字节。 - -C 输出规范的十六进制和ASCII码。 - -b 单字节八进制显示。 - -c 单字节字符显示。 - -d 双字节十进制显示。 - -o 双字节八进制显示。 - -x 双字节十六进制显示。 - -s 从偏移量开始输出。 - -e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b "format1" "format2"'。 ```
顶部
收展
底部
[TOC]
目录
Linux文本处理:查看文本内容
Linux文本处理:vim编辑器
Linux文本处理:输入输出重定向
Linux文本处理:文本查找命令grep
Linux文本处理:数据处理命令sed
Linux文本处理:文本分析工具awk
相关推荐
Linux文件目录管理
Linux打包压缩
Linux软件安装
Linux用户和用户组管理
Linux文件系统管理
Linux系统管理