Linux 文本处理 命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014565127/article/details/88617277

感谢Linuxcast,感谢苏勇(nash_su)老师!

文件浏览

  • cat 查看文件内容
  • more 以翻页形式查看文件内容(只能向下翻页)
  • less 以翻页形式查看文件内容(可以上下翻页)
  • head 查看文件的开始10行(或指定行数)
  • tail 查看文件的结束10行(或指定行数)

这部分内容前面已经学过,这里只是做一下回顾。

基于关键字进行搜索 grep

命令名称:grep
命名所在路径:/bin/grep
执行权限:所有用户
语法:grep -iv [指定字串] [文件]
功能描述:基于关键字搜索文本,在文件中搜寻字串匹配的行并输出。

例如之前我们使用过的:
在这里插入图片描述
上一篇博客中有对上面两条命令的详细解释,这里也不再赘述。

其他的参数:

  • -i :在搜索时忽略大小写;
  • -n: 显示结果所在行数;
  • -v : 输出不带关键字的行
  • -Ax : 在输出的时候包含结果所在行之后的指定行数
  • -Bx : 在输出的时候包含结果所在行之前的指定行数

基于列处理文本

命令cut用以基于列处理文本内容
例如:
cut -d: -fl /etc/passwd
grep linuxcast /etc/passwd | cut -d: -f3

  • -d:指定分割字符(默认是TAB)
  • -f:指定输出的列号
  • -c:基于字符进行分割

在Linux中,很多文件都是以列分割格式保存的,例如我们之前学过的passwd文件,就是以冒号分割为七个部分:

veeja: x:1000:1000:Veeja‘s PC:/home/veeja:/bin/bash
xiaoma: x:1001:1001::/home/xiaoma:/bin/bash

我们对其进行一些 cut 操作:
在这里插入图片描述
上面的这条命令的意思就是:对/etc/passwd文件进行分割操作,-d参数指定分隔符为“:”,-f参数指定我们只取第一列的内容,所以我们看到结果中只显示了passwd文件中每一行的第一列,也就是用户名信息。

我们再看下一个:
在这里插入图片描述
这句命令的意思是,首先grep veeja /etc/passwd,找出passwd文件中含有关键字veeja的一行,然后将这一行传给另一句cut -d: -f3,对该行进行分割操作,以“:”为分割方式,取第三部分的内容,也就是该用户的UID。

另外我们也可以基于字符进行切割,也就是使用-c参数:
在这里插入图片描述
上面的这一条命令就是切割出/etcpasswd文件中每一行的第2-6个字符。当然这样切割是没有任何实际含义的,我们只是作为演示。

文本统计

命令wc用以统计文本信息。

  • -l:只统计行数
  • -w:只统计单词
  • -c:只统计字节数
  • -m:只统计字符数
    在这里插入图片描述
    上述示例分别使用了各个参数,分别统计目标文件的各类数目。

文本排序

命令sort用以对文本内容进行排序。

扫描二维码关注公众号,回复: 5908098 查看本文章
  • -r:进行倒序排序
  • -n:基于数字进行排序
  • -f:忽略大小写
  • -u:删除重复行
  • -t c:使用c作为分隔符分割为列进行排序
  • -k x:当进行基于指定字符分割为列的排序时,指定基于哪个列排序

示例:

  • 给英文文本进行排序
    在这里插入图片描述
  • 给数字文本进行排序
    在这里插入图片描述
  • 给英文文本进行倒序排序
    在这里插入图片描述

删除重复行

  • 命令sort -u可以删除重复行
    在这里插入图片描述
  • 命令uniq用以删除相邻的重复行
    在这里插入图片描述

文本比较

命令diff可以用来进行比较两个文件的区别。
常用参数:

  • -i:忽略大小写
  • -b:忽略文件空格数量的变化
  • -u:统一显示比较信息(一般用以生成patch文件)
    例如:diff -u testfile1 testfile2 > final.patch一般我们用于开发过程中,如果新的开发程序做了一些改变,又不想将整个程序重新打包,就可以使用这条命令生成patch补丁文件。这样用户只需要下载补丁文件,然后对原程序进行打补丁即可。

示例:

  • 比较两个文件的区别:
    在这里插入图片描述
  • 比较两个文件的区别(忽略大小写)
    在这里插入图片描述
  • 比较两个文件的区别(忽略空格数量的变化)
    在这里插入图片描述
  • 生成补丁文件
    在这里插入图片描述

检查拼写

命令aspell用以检查英文拼写。

  • aspell check testfile
  • aspell list testfile

处理文本内容

命令tr用于处理文本内容。
参数及示例:

  • -d:用于删除指定的关键字。
    在这里插入图片描述
  • 转换大小写:
    在这里插入图片描述

搜索替换

命令sed用于搜索并替换文本。
这里会用到一些正则表达式的内容,如果不了解也没关系,可以先简单的记忆。
例如:
命令:sed 's/linux/unix/g' testfile,前面是命令sed,后面是我们要处理的文件testfile,而中间部分是一条正则表达式语句,意思就是对文本进行替换,将所有的linux替换为unix,g表示如果一行之中出现多个匹配项,就把每一个都替换。
命令:sed 's/linux/unix/g' testfile:与上一条相比,指定了要搜索替换的行数,是1-50行。
如果有多个搜索替换项的话,使用-e参数:sed -e 's/linux/unix/g' -e's/veeja/veejaliu/g' testfile,这样就把所有的linux替换成了unix,并将所有的veeja替换成了veejaliu。
我们还可以将所有的替换选项写入一个文件,使用-f参数读取这个文件进行替换:sed -f sededit testfile

That’s all.


环境:
  软件版本:VirtualBox 4.3.12 r93733
  Linux系统版本:CentOS 7 ×86_64 1511

如有纰漏,望不吝指出,不胜感激。

猜你喜欢

转载自blog.csdn.net/u014565127/article/details/88617277