Linux 中根据某一列的内容拆分文件(指定列内容重复的保存为一个文件,先生成唯一的文件名)

 

 

001、

复制代码
[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
01 aa 02 03
04 aa 05 06
07 bb 08 09
10 bb 11 12
13 aa 14 15
16 bb 17 18
19 cc 20 21
22 cc 23 24
25 bb 26 27
28 ee 30
[root@PC1 test2]# awk '{OFS = "\t"; if(!($2 in ay1)) {ay1[$2]++; tmp = $2}; if($2 in ay1 && tmp != $2) {ay1[$2]++};tmp = $2; $2 = ay1[$2]"_"$2; print $0}' a.txt
01      1_aa    02      03
04      1_aa    05      06
07      1_bb    08      09
10      1_bb    11      12
13      2_aa    14      15
16      2_bb    17      18
19      1_cc    20      21
22      1_cc    23      24
25      3_bb    26      27
28      1_ee    30
复制代码

 

 。

 

002、

复制代码
[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
01 aa 02 03
04 aa 05 06
07 bb 08 09
10 bb 11 12
13 aa 14 15
16 bb 17 18
19 cc 20 21
22 cc 23 24
25 bb 26 27
28 ee 30
[root@PC1 test2]# awk 'BEGIN{tmp = 0}{if($2 != tmp) {count++}; tmp = $2; $2 = count"_"$2; print $0 }' a.txt
01 1_aa 02 03
04 1_aa 05 06
07 2_bb 08 09
10 2_bb 11 12
13 3_aa 14 15
16 4_bb 17 18
19 5_cc 20 21
22 5_cc 23 24
25 6_bb 26 27
28 7_ee 30
复制代码

 。

 

posted @   小鲨鱼2018  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-06-06 python中实现提取碱基序列的互补序列
2023-06-06 linux中实现提取碱基序列的互补序列
2023-06-06 python中同时指定多个分隔符将字符串拆分为列表
2023-06-06 python启动状态下查看版本
2022-06-06 python中如何删除字典中的元素
2022-06-06 python中实现字典的合并
2022-06-06 R语言中which.max、which.min函数,返回最大值和最小值的索引
点击右上角即可分享
微信分享提示