linux中文本处理工具

  对于linux来讲,文本处理是非常重要的,因为linux系统就是由无数的文件组成的,linux中一切皆文件。文件的处理方式有很多种,所以就有众多的文本处理工具,各自作用于不同的文本处理方式。


一、查看文件命令:

   cat命令:处理显示文件内容,不改变原文件

   cat命令常用于查看文件内容,也可通过不同的选项实现不同的显示效果,只执行cat命令是会提供给用户一个交互式的界面,输入什么内容就显示什么内容。

 格式:cat [选项] …文件…

 常用选项:

      -n:在显示的内容前加上行号

      -A:显示所有的控制符

      -E:显示行结束符$

      -b:非空行编号

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

示例:

[root@host ~]# cat f1

abcd 

aabbccdd

[root@host ~]# cat -n f1

     1 abcd 

     2 aabbccdd

     3

[root@host ~]# cat -A f1

abcd $

aabbccdd$

$

[root@host ~]# cat -E f1

abcd $

aabbccdd$

$

[root@host ~]# cat -b f1

     1 abcd 

     2 aabbccdd


二、分页查看文件命令:


  more命令:分页查看文件内容,在查看文件时,用时候会遇到文件特别大,一屏根本显示不完,这时我们就用到了分页查看工具,可以方便的把文件进行分页,从而方便查看

 格式:  more [选项…] 文件..

 常用选项:

      -d:屏幕下方显示提示信息

  用法:使用回车键向下翻一行,使用空格键向下翻一屏

截图:

所示.png

 

less命令:一页页地查看文件内容标准输出,提供了比more更为强大的功能

查看使用的命令有:

  可以向上和向下查看,也可进行搜索,

  PgUp:向上翻一屏

  PgDn:向下翻一屏

  回车键、下箭头:向下翻一行

  上箭头:向上翻一行

  搜索功能

  也可插入 / 或 ?在其后输入要查找的内容

  /从光标向下搜索

  ?从光标处向上搜索

   可结合n/N跳到下一个或上一个匹配的项


三、显示文件前几行、后几行的内容的命令


  head命令:显示文件的前几行内容(默认显示前十行)

   格式:head [选项].. 文件..

   常用选项;

        -c #:指定获取前#个字节

        -n #:指定获取钱#行

        -#:指定行数


示例:

[root@host ~]# head -c 100 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nol[root@host ~]# head -n 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@host ~]# head -3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@host ~]#


   tail命令:显示文件后几行的内容(默认为后十行)  

  格式: tail [选项]…文件…

  常用选项:

       -c #:指定后获取#个字节

       -n #:指定获取后#行

       -#:指定后#行

       -f:跟踪显示文件新添内容的变化,多用于监控日志

  用法与head命令相同


四、按列抽取文本命令与合并文本命令


     cut命令:按列抽取文件内容

   格式:cut [选项]…文件…

 常用选项:

       -d 分隔符:指明分隔符,默认为tab

       -f 数字:

         #:指定第#个字段

         #,#[#]:离散的多个字段,例如1,3,5

         #-#:连续的字段 例如1-4

         混合使用:1-3,5

       -c:按字符分割

       –output-delimiter=STRING 指定输出分割符

示例:

[root@host ~]# cut -d: -f1,3-5 /etc/passwd

root:0:0:root

bin:1:1:bin

daemon:2:2:daemon

adm:3:4:adm

[root@host ~]# cut -c1-10 /etc/passwd

root:x:0:0

bin:x:1:1:

daemon:x:2

adm:x:3:4:

[root@host ~]# cut -d: -f1,2 –output-delimiter=# /etc/passwd

root#x

bin#x

daemon#x

adm#x


   paste命令:合并两个文件同行号的列到一行


   格式: paste [选项]…文[件]…

   常用选项:

         -d 分隔符:指定分隔符,默认为tab

         -s:所用行合并成一行显示

示例:

[root@host ~]# cat f1 f2

abcd 

auuuuy

00000000000

abcd 

auuuuy

00000000000

[root@host ~]# paste f1 f2

abcd abcd 

auuuuy auuuuy

00000000000 00000000000

[root@host ~]# paste -s f1 f2

abcd auuuuy 00000000000

abcd auuuuy 00000000000



五、分析文本工具:

     wc命令:收集文本统计数据,能够统计出文件的单词数、行数、字符数、字节数,作用对象可以是文本也可以是标准输出,常与管道结合使用。

  格式:wc [选项]

默认不加选项将输出行数、单词数、字符数

   选项;

      -l:统计行数

      -c:统计字节数

      -w:统计单词数

      -m:统计字符数(当统计汉字时与-c选项有区别)

示例:

[root@host ~]# cat /etc/passwd | wc

     47      91    2448

[root@host ~]# cat /etc/passwd | wc -l

47

[root@host ~]# cat /etc/passwd | wc -c

2448

[root@host ~]# cat /etc/passwd | wc -w

91


     sort命令:文本排序命令,把处理过的内容显示出来,不会改变源文件内容

   格式: sort [选项] 文件

   常用选项:

        -r:反向排序(由上至下)

        -n:按数字大小排序

        -f:忽略字符大小写

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

        -t 分隔符:指定分割符

        -k 数字段:按照-t指定的分隔符确定以哪一列进行排序

示例:

[root@host ~]# cat f1

123

23

45

4

[root@host ~]# sort f1

123

23

4

45

[root@host ~]# sort -n f1

4

23

45

123

[root@host ~]# sort -nr f1

123

45

23

4

[root@host ~]# sort -t: -k 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

zhang:x:1000:1000:zhang:/home/zhang:/bin/bash

bash:x:1001:1001::/home/bash:/bin/bash

basher:x:1002:1002::/home/basher:/bin/bash


   uniq命令:从输入中删除重复的行(连续的且完全相同的为重复)

  格式: uniq [选项]…[文件]…

  选项:

    -c:显示重复的行的次数

    -d:仅显示重复的行

    -u:仅显示不重复的行

示例:

 

[root@host ~]# cat f1

45

23

45

45

[root@host ~]# uniq -c f1

      1 45

      1 23

      2 45

[root@host ~]# uniq -d f1

45

[root@host ~]# uniq -u f1

45

23

           

   diff命令:diff命令用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。diff程序的输出被称为补丁 ,因为Linux系统中还有一个patch程序,可以根据diff的输出将误删除的diff格式的其中一个文件恢复回来,不过用于恢复的文件会飞改名。

  格式: diff [选项] 文件1 文件2…

    选项:

       -u:在恢复diff格式文件时选用

    patch命令:复制在其他文件中进行的改变

    选项:

        -b:自动备份改变了的文件

示例:

[root@host ~]# cat f1 f2

auuuuy

00000000000

abcd 

auuuuy

00000000000

[root@host ~]# diff f1 f2

0a1

> abcd 

1a3

[root@host ~]# diff -u f1 f2 > f.log

[root@host ~]# rm -f f1

[root@host ~]# patch -b f2 f.log 

patching file f2

Reversed (or previously applied) patch detected!  Assume -R? [n] y

[root@host ~]# ls

anaconda-ks.cfg  Documents  f2       f.log  Pictures  Templates  wc

Desktop          Downloads  f2.orig  Music  Public    Videos

[root@host ~]# cat f2 f2.orig 

auuuuy

00000000000

abcd 

auuuuy

00000000000


原创文章,作者:ZJM,如若转载,请注明出处:http://www.178linux.com/30079

(0)
ZJMZJM
上一篇 2016-08-08 16:15
下一篇 2016-08-08 16:15

相关推荐

  • 一个简单小例子来说一下Rescue营救模式

    昨天不小心将/lib64下的一个动态库文件libc.so.6(很多命令都依赖的)给移动到了/root下,然后除了一些内部命令可用外,其余命令都不能用了,然后就想着看看重启可不可以修复,结果重启后就再也开不了机了,心想着这可咋整,要不用最快的方式进行快照恢复吧,结果老师就说了,不能使用快照,让我们使用Rescue营救模式进行恢复,然后在恢复的过程中就发现一个问…

    Linux干货 2017-08-21
  • Linux正则表达式

    正则表达式

    2017-12-24
  • Linux文件压缩、解压、归档总结

    一、简介   压缩对我们来说通常意味着减小文件体积,节省硬盘空间。在Windows平台上处理大文件或目录中的文件很多时我们都需要对这些文件进行压缩处理,压缩格式多种多样,如:zip、rar、7z等格式,压缩方式也比较多样话,支持按最大压缩比例或者最快时间进行压缩等多种方式,而生成的压缩包就可以让我们更方便的进行拷贝及归档整理。解压缩顾名思义就是回归…

    Linux干货 2015-09-26
  • 修改Linux命令终端提示符

    作业1. 设置自己的终端提示符,要求字符终端登录时:     a> 需要带颜色     b> 需要显示当前执行到了第几条命令     c> 显示当前登录终端,主机名和当前时间     这可以通…

    Linux干货 2016-10-17
  • 数据结构- 串的模式匹配算法:BF和 KMP算法

    Brute-Force算法的思想 1.BF(Brute-Force)算法   Brute-Force算法的基本思想是: 1) 从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s 的第二个字符起再重新和串t进行比较。 2) 依此类推,直至串t 中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹…

    Linux干货 2015-04-07
  • bash的基础特性[更新中]

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-03-17