文本文件student
姓名 学号 语文成绩 数学成绩 英语成绩 总成绩
张三 001 80 90 95 265
李四 002 1 85 90 245
赵五 003 65 90 70 225
王六 004 60 40 80 180
周七 005 90 55 85 230
齐八 006 85 90 70 245
平均成绩、最高分
一、grep--按行筛选(仅查找)
1.grep通常用来用来在文件或者上一个命令的输出结果中,筛选出我们所需要的内容
2.cat integer | grep 2 --------目的是在integer这个文件中,筛选出带有2的行。
3.cat integer | grep +正则表达式(vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大)
4.cat 2 grep integer 同样是在文件中找到带2的行
5.ls -l /etc/ | grep -v init 的目的是在管道左侧命令的输出结果中筛选出不包含 init这个字符串的内容。(相当于 grep init 的取反)
二、sed 按行修改(增删改查)
在这种情况下,:delete命令回到line所指定的行(默认为当前行),然后删除count行文本(包括当前行).。插入操作将指定的键与新值相关联,删除操作可删除指定的键。选择某一行记录,单击鼠标右键,在快捷菜单中执行“删除”命令,可以删除指定行记录数据。
定位第64行(参照句出现的行号,并非需要修改的直接行号)做如下操作,每行前的 - 号代表删除行,+ 号代表添加行:。定位第255行(参照句出现的行号,并非需要修改的直接行号)做如下操作,每行前的 - 号代表删除行,+ 号代表添加行:。 写一个程序以比较两个文本文件的内容是否相同,并输出两文件内容首次 不同的行号和字符位置。
3.cat -n student | sed '3,5d' --输出student的内容,并将3到5行删除
4.cat -n student | sed '1a abcdfe' --输出student的内容,并在第一行后面,第二行前linux命令,插入abcdfe.
5. cat -n student | sed '1c abcd' --输出student的内容,并将第一行修改为abcd
6.cat -n student | sed '3,5p' ---输出student的内容,只显示3到5行
7.命令sed当使用在查找的这个场景中时,要加-n 选项参数,不加n数据会重复,显示原文本和处理后的数据。
8.cat -n student | sed -n '/张三/p' ---输出student的内容,只显示含有张三的行。
三、AWK按行处理(对每行文本做更复杂的处理 )
1.命令AWK通常会按照行去处理文本,它要做的第一个事就是按照行进行切割,如果指定切割符就按照指定的走,没有就按照默认的空字符。
2.cat student | awk '{print $2}' (awk相当于split) ----这条命令的作用就是对student的内容按行处理,每行使用空格进行切割,切割后,第一列称为$1,第二列称为$2,未切割的原始数据是$0,print就是在屏幕上输出对应变量的值。
3.输入:cat/etc/password
输出:root(用户):x:0(user id用户id):0(用户组对应id):root(全名):/root(家目录):/bin/bash(使用的命令提示符的执行程序/shell程序)