从文本的每一行中提取特定字段并输出
- 以csv(逗号分隔)文件为例,文件格式如下:
测试文本可点击 test.csv 下载,百度网盘提取码1234 - 要求:
提取第9列、15列、26列、28列、29列
输出格式:9列+15列,26列,28列,29列
示例仅对前5行进行操作
awk -F, 'BEGIN{OFS=","} NR<=2{printf("%d+%d,",$9,$15);print $26,$28,$29}' test.csv
752+3088,4,None,786-0
752+3088,-14,None,786-0
752+3088,-1,None,786-0
752+3088,5,None,786-0
752+3088,-16,None,786-0
- 说明:
按照要求,需要在BEGIN里预定义输出字段分隔符 OFS 为逗号;
使用printf函数格式化前两个字符串,printf 与print 相比不会自动换行 - 还有多种方式可以满足要求,欢迎在评论区分享