字符提取命令

1、cut


cut命令是用来提取列的  

  cut [选项] 文件名

  选项:

        -f 列号

           -d  分割符

提取下面文本文件中所有名字,列使用Tab键作为分割的

当然也可以指定分割符,提供普通用户的用户名

但是cut命令有其局限性,就是每列的分隔符个数不确定时(比如有多个空格),这样我们就无法进行提取了。

2、printf命令


  这里的prinf和C中的用法差不多,有点不同是其参数个数可以多于输出类型的个数。对于上面的例子我们可以这样理解,第一个%s匹配第一参数1,第二个%s配第二个参数1,然后直接输出并换行。然后从剩余的参数中从左向右再次匹配。然后输出,如果没有匹配到参数就不输出。

  printf命令的主要作用就是给awk命令提供服务

3.awk命令


awk命令太过于复杂,这里只进行简答的介绍,主要弥补cut命令的不足

输出41,其中的$5代表第五列

  • 添加条件

  

  这里的BEGIN是awk中的关键字,在处理文本之前先执行该命令。但是如果不加,结果如下

  

  这是因为awk在执行的时候也是按行读取来处理的,每读一行执行下一条件判断语句。与BEGIN相对应的就是END,意思是在整个数据处理完后执行某些动作。

  •  指定分割符

  awk默认是以空白为分割的(不管是空格还是制表符),这里我们可以通过FS来指定分割符

  

  输出所有的用户名

 4.sed命令


sed命令是流处理命令

 

  • 输出第二行

  

  • 只输出第二行

  

  •  删除第二行到第四行数据输出,不影响文件本身

   

  • 在第二行后追加hello world!

    

  • 替换第二行

  

  • 字符串替换(全局替换)

  

  • 指定行替换

  

  • 多个命令一起执行

  

原文地址:https://www.cnblogs.com/xidongyu/p/5559912.html