文本处理工具初探

作为一个系统管理员,文本处理功能是经常使用的,熟练地使用各种文本工具有助于提高工作效率,从繁忙的工作中早点解脱。下面就来介绍处理文本的常用命令。

处理文本的命令大致分为:

       查看文件内容:cat、less、more

       按行抽取文件内容:head、tail

       按列抽文件内容取:cut

       统计文本:wc

       整理文本:sort、uniq

       比较文本:diff、patch

一、查看文件内容

    1、cat:读取一个或多个文件,然后复制到标准输出。

    用法:cat  [options]  file1  [file2…]

     常用的options有:

       -n: 对显示出的每一行进行编号

       -b: 对显示出的非空行进行编号

       -s: 压缩连续的空行成一行

       -A: 显示所有的控制符,如:tab、换行、行结束符等。

      -E: 显示行结束符。在linux,行结束符用$标识。

blob.png

压缩连续的空行:

blob.png

2、less和more:分页查看工具

  用法:less|more  file

    “回车”:查看下一页

    “b”:查看上一页

    “enter”:查看下一行

    “p“:查看上一行。

区别:more不能使用”p”查看上一行,并且more在查看到文件底部时,会退出查看,而less仍然是查看状态。

总结:在查看内容较少的文件时,建议使用cat,在查看文件内容较多的文件时,建议使用less。

二、按行截取文件内容

  1、查看文件的前n行:head

   用法:head  [options]  file

   常用的options:

     -n #:指定获取前#行的内容。如果未指定,默认显示前10行。

    例:显示/etc/passwd前8行的内容

blob.png

 

 2、查看文件的后n行:tail

  用法:tail [options] file

  常用options:

   -n #: 指定获取后#行的内容。如果未指定,默认显示后10行。

   -f: 跟踪显示文件新追加的内容,常用日志监控

   tail –f 可以简写为tailf

例2.1:显示/etc/passwd后8行的内容:

blob.png

 

例2.2:追踪查看/var/log/messages文件。

若只想查看新增的日志内容,可以指定:tailf –n 0 /var/log/messages

退出查看“ctrl + c“

blob.png

 

三、按列抽取文本:cut

  文本中的内容,并不是每一行都是我们需要的。比如,我只需要/etc/passwd文件中的用户名、用户id、用户登录shell,这时,就需要按列队文本进行处理。

  用法: cut  [options]  file

  常用options:

    -d  Delimiter:指明分隔符,默认为tab。也可以为“ “(表示空白)、”:”等。

    -f  Fileds: 指明显示分割后的那些列。      

     显示模式:

     1)、#:第#个字段

     2)、#,#: 离散的多个字段。如 1,3,7

     3)、#-#:连续的多个字段

     4)、混合使用,将上述三种模式混合。如:1,3,5-7.

可以和管道配合,这样能观察文本的格式特点,对其进行分隔

例:显示/etc/passwd文件中的用户名、用户id、用户登录shell。

blob.png

也可以不和管道配合,直接切割文件

blob.png

cut命令也常合其他系统管理命令配合使用,对其中的某个参数进行监控。

例: 取出磁盘空间使用率

blob.png 

tr –s “ “  “:”:将多余的空格合并为一个,并替换为“:“。

四、统计文本wc

法:wc [options]  file

常用options:

  -l :只统计行数

  -w:统计单词数

例:统计/etc/passwd有多少行,有多少个单词。

blob.png

五、整理文本

对文本进行排序,去掉重复的行等。

5.1、sort

  用法:sort [options] file

  常用options:

    -n :按数字进行排序。不指定默认按字符进行排序,数字也被当作字符

    -r:逆向排序。

    -u:删除输出中重复的行

    -t Delimiter:指定分隔符

    -k #:按分隔后的知道字段进行排序。

例:/etc/passwd按id进行排序

blob.png

/etc/passwd按id逆向排序

blob.png 

5.2、uniq:删除重复的前后相接的行

  用法:unip [options] file

  常用options:

   -c :显示每行重复出现的次数

   -d :仅显示重复过的行

   -u :仅显示不曾重复的行。

例:统计当前远程登陆到本机的ip地址及其连接数

blob.png

六、文本比较:diff

  用法:diff  file1  file2 比较两个文本之间的区别。

diff命令的输出被保存在一种叫做“补丁”的文件中,配合patch命令对文件版本管理。

  常用options:

    -u 选项来输出“统一的( unified)” diff格式文件,最适用于补丁文件。

   -b 选项来自动备份改变了的文件

例:复制/etc/fstab到当前文件,一名为fs1,一名为fs2,对fs2进行修改,在第一行添加“last modify“。之后通过补丁将fs1的内容更新为fs2的内容。

blob.png

 

文本处理三剑客grep、sed、awk放在后续的文章中介绍

原创文章,作者:M20-1钟明波,如若转载,请注明出处:http://www.178linux.com/29753

(0)
M20-1钟明波M20-1钟明波
上一篇 2016-08-07 22:07
下一篇 2016-08-07 22:07

相关推荐

  • 无痛之ext3升ext4[原创]

    一台文件存储服务器单目录下子目录已经突破31998数限制,造成无法继续创建子目录,服务器系统环境为CentOS5.4 内核版本为2.6.18。解决方案只能是升级到ext4文件系统,首先到https://ext4.wiki.kernel.org/index.php/Ext4_Howto查了一下资料,文中的第一句便是“Ext4 was released as a…

    Linux干货 2015-03-27
  • Linux用户和组的相关管理命令(一、用户的相关命令)

    Linux是一个可以实现多用户登录的操作系统,通过su – 用户名 可以进行用户之间的切换,从而完成不同登录用户下对私有文件的操作,同时,每个用户有且只有一个主组,但是可以有零个或多个附加组,每个组可以是一个用户的主组,同时还可以是多个用户的附加组。因此,熟练掌握用户和组的相关命令十分重要。 首先,要了解用户和组的配置文件各有两个: 与用户相关的…

    2017-07-22
  • 从Linux小白到大牛——与狼共舞的日子2

    马哥教育网络班21期+第2周课程练习 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp:copy,复制文件 cp SRC DEST   SRC为文件     如果目录不存在:新建DEST,并将SRC中内容填充至DEST中     如果目…

    Linux干货 2016-07-17
  • 搭建简单的svn服务器

        svn在版本控制方面还是挺有用的。坑运维的人中就有研发,出补丁或版本的时候很坚定的说“升吧,没问题”,结果升上去后就会狂报错。所以运维的要在打补丁,尤其是改动很大的时候一定要把后路想好。否则会长时间的影响业务。svn就有一个很好的机制–回退(当然你也可以事先备份下),可以回退到之前的某个时间节点,操作很方便的。当然sv…

    Linux干货 2015-11-18
  • N25-第四周作业

    第四周 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@zf ~]# cp -r /etc/skel/ /home/tuser1 [root@zf ~]# chmod -R&nbs…

    Linux干货 2016-12-21
  • 管理systemd

    管理systemd 一、systemd介绍 回顾一下centos的启动流程  POST –> Boot Sequence –> Bootloader –> kernel + initramfs(initrd) –> rootfs –> /sbin/init 在…

    Linux干货 2016-09-22