字符提取命令
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!
- 替换第二行
- 字符串替换(全局替换)
- 指定行替换
- 多个命令一起执行