shell - 提取特定字段


测试数据:
数据格式:tab键分割,前三条记录5个字段,最后一条记录4个字段
要求:抽取字段数为5的记录的第二个和第三个字段

2019-03-11 21:05:07	209.58.131.47	57103	122.192.12.71	22270
2019-03-11 21:05:07	209.58.131.48	57104	122.192.12.71	22270
2019-03-11 21:05:07	209.58.131.49	57105	122.192.12.71	22270
2019-03-11 21:05:07	209.58.131.50	57106	122.192.12.71	

awk

在shell命令行输入命令调用awk

awk系统变量:
FILENAME:当前文件名
FS:字段分隔符,默认是空格键
NR:当前记录数
NF:当前记录中的域数量

[hadoop@slave107 suiji]$ awk 'BEGIN {FS="\t"} {if(NF==5) print NR,$2,$3 }' test.txt
1 209.58.131.47 57103
2 209.58.131.48 57104
3 209.58.131.49 57105

awk脚本

#!/bin/awk -f
BEGIN{FS="\t"}
{if(NF==5) print NR,$2,$3}
END{print FILENAME}

[hadoop@slave107 suiji]$ ./extract_fields test.txt
1 209.58.131.47 57103
2 209.58.131.48 57104
3 209.58.131.49 57105
test.txt

猜你喜欢

转载自blog.csdn.net/qq_29573903/article/details/90037059
今日推荐