随写笔记

1、关于linux的空格分隔:

 结论:按1个空格分隔的话,可以连续任意多个空格当做一个看待;按两个空格的话就只能是实际空格看待了。      

 示例:        

[root@hadoopm ~]#more ss.txt  #注:字母间隔分别为1、2、3、4、5个空格   
a b  c   d    e     g

#测试单个空格分隔:
[root@hadoopm ~]#awk -F ' ' '{print $1}' ss.txt  
a
[root@hadoopm ~]#awk -F ' ' '{print $2}' ss.txt  
b
[root@hadoopm ~]#awk -F ' ' '{print $3}' ss.txt  
c
[root@hadoopm ~]#awk -F ' ' '{print $4}' ss.txt  
d
[root@hadoopm ~]#awk -F ' ' '{print $5}' ss.txt  
e
[root@hadoopm ~]#awk -F ' ' '{print $6}' ss.txt  
g

#测试两个空格分隔
[root@hadoopm ~]#awk -F '  ' '{print $1}' ss.txt 
a b
[root@hadoopm ~]#awk -F '  ' '{print $2}' ss.txt 
c
[root@hadoopm ~]#awk -F '  ' '{print $3}' ss.txt #结果为“1个空格+d”
 d
[root@hadoopm ~]#awk -F '  ' '{print $4}' ss.txt #结果为空

[root@hadoopm ~]#awk -F '  ' '{print $5}' ss.txt 
e
[root@hadoopm ~]#awk -F '  ' '{print $6}' ss.txt #结果为空

[root@hadoopm ~]#awk -F '  ' '{print $7}' ss.txt  #结果为“1个空格+g”
 g

2、awk在join关联上的用法

参考:http://lxw1234.com/archives/2016/03/621.htm

基本用法:尽管操作可能会很复杂,但命令的语法始终是: awk '{pattern + action}' 或者 awk 'pattern {action}'

Awk特殊变量

描述

$number

表示记录的字段。比如,$1表示第1个字段,$2表示第2个字段,如此类推。而$0比较特殊,表示整个当前行

FS

表示字段分隔符

NF

表示当前记录中的字段数量

NR

表示当前记录的编号(awk将第一个记录算作记录号1)

awk可以指定同时读取多个文件,按照指定的先后顺序,逐个读取。

NR指的是Number Record Of ALL 的意思; FNR只的是Number Record Of One FILE 的意思。

示例:

[root@hadoopm ~]#more a.txt     ##顺序打乱无影响
4,a-4
1,a-1
3,a-3
2,a-2
[root@hadoopm ~]#more b.txt
2,b-2
4,b-4
5,b-5
[root@hadoopm ~]#awk -F',' '{print NR,FNR,$0}' b.txt a.txt                        
1 1 2,b-2
2 2 4,b-4
3 3 5,b-5
4 1 4,a-4
5 2 1,a-1
6 3 3,a-3
7 4 2,a-2
[root@hadoopm ~]#awk -F',' 'NR==FNR{print "===="$0}NR!=FNR{print "!=!="$0}' b.txt a.txt
====2,b-2
====4,b-4
====5,b-5
!=!=4,a-4
!=!=1,a-1
!=!=3,a-3
!=!=2,a-2
[root@hadoopm ~]#awk -F',' 'NR==FNR{a[$1]=$2;}NR!=FNR{print $0,a[$1]}' b.txt a.txt                        
4,a-4 b-4
1,a-1 
3,a-3 
2,a-2 b-2

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值