想和我一起交流沟通,获取更多内容欢迎关注微信公众号:生信real
上一节我们讲到cut是有局限性的:cut只能识别制表符,或者具体的分隔符(":"、","等)。当文件的分隔符是空格,我们就无法利用cut进行提取了,此时我们需要用到后面将要讲到的awk命令来进行提取。
1.awk
命令格式
[root@laptop~]# awk ‘条件1{动作1} 条件2{动作2}…’ 文件名
条件(pattren):
一般使用关系表达式作为条件
x > 10 判断变量x是否大于10
x>=10 大于等于
x<=10 小于等于
动作(Action):
格式化输出
流程控制语句
接下来我们以student.txt这个文档作为演示
例1.当{}外面没有指定任何条件,说明整个文件中所有内容都执行这个动作;同时1~n代表第1列到第n列,
例2.用awk命令提取分隔符为空格的列,同时这里用的是print不是printf,两者的区别是printf需要加换行符,print不需要打换行符,自己可以换行。
PS.在Linux系统中没有print命令,只有printf命令,但是在awk命令中两个都有。
例3.BEGIN
我们直接看下面的例子。
BEGIN是写在{}之前的,所以BEGIN是一个条件,只有满足了这个条件动作才会执行。BEGIN的作用是,在读取{printf2"\t"2"\t"2"\t"
例4.FS内置变量
FS是用来指定分隔符的,FS=":"就是指定":"为分隔符
BEGIN的意思就是在读取数据之前,先把分隔符写进去,然后再处理数据
例5.END
在末尾添加你想输出的内容
例6.关系运算符